|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
Добрый день. При выполнении команды SendObject, все группы пробелов в теле письма "схлопываются" до одного. Т.е., текст должен выглядеть так: Код: html 1. 2. 3. 4.
а выглядит вот так: Код: html 1. 2. 3. 4.
Пробовал вставлять кучу пробелов, использовал Chr(9)... ничего не помогает. PS. Почта - Mozilla Thunderbird. Но в ее настройках на эту тему - ничего. Может, есть способ ее обмануть? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 14:02 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
Я бы не полагался на разгонку пробелами при пересылке информации в тексте письма, это в большинстве случаев приводит к похожим результатам. Посмотрите на альтернативные форматы: текстовый файл в виде аттачмента, html с таблицей, xls. Одно из базовых правил верстки для полиграфии - рядом не должно быть более одного пробела. Письмо - это та же полиграфия, только в электронном виде. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 14:13 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgene, Space а не Chr но более правильно сказал MrShin ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 14:45 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgeneа выглядит вот такНу так формат тела письма надо не HTML использовать, а plain text... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 15:13 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
sdkuSpace а не Chr Вы не правы, Chr(9) - табуляция. Но ТС это тоже не спасло. Я бы вместо SendObject использовал отправку через CDO. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 15:45 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgeneChr(9) это не пробелы --это табуляция видимо надо на chr(160) заменить --неразрывный пробел ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 16:10 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, а так как почта --это НТМЛ-файл, то там для получения пробелов вставляют ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 16:13 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, потеряла код --сьел форум по буквам это так (вставила подчеркивание, чтобы снова не съело &_n_b_s_p_; ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 16:16 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКАпочта --это НТМЛ-файлВовсе даже необязательно... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 16:48 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 17:22 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
Вдогонку - после b,естессно, запятая (куда делась ума не приложу) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 17:26 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgene, Если все же нужна таблица в тексте, я поддержу идею насчет отправки в формате plain text. Используйте CDO для отправки, текст пишите в .TextBody, а не в .HTMLBody, это позволит избежать схлопывания. Примеры использования CDO есть, например, здесь . Я использую модуль под катом для отсылки сообщений через gmail, можно настроить на любой другой по аналогии. В параметрах есть признак html или plain. Option Compare Database Option Explicit '// module with function for sending email thru Gmail server Dim EmailAccount As String Dim EmailErrorsTo As String Dim EmailPassword As String Public Sub Gmail(strSubject As String, strMessage As String, Optional strTo As String, Optional strCC As String = "", Optional strBCC As String = "", Optional blnHTMLFormat As Boolean = False) 'this code derived from: ' http://www.paulsadowski.com/wsh/cdo.htm Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory. Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network). Const cdoAnonymous = 0 'Do not authenticate Const cdoBasic = 1 'basic (clear-text) authentication Const cdoNTLM = 2 'NTLM Dim objMessage As Object 10 On Error GoTo ErrorHandler 20 Set objMessage = CreateObject("CDO.Message") 30 objMessage.Subject = strSubject 40 objMessage.FROM = EmailAccount 50 If IsMissing(strTo) Or strTo = "" Then 60 objMessage.To = EmailErrorsTo 70 Else 80 objMessage.To = strTo 90 End If 100 If blnHTMLFormat Then 110 objMessage.HTMLBody = strMessage 120 Else 130 objMessage.TextBody = strMessage 140 End If 150 If strCC <> "" Then 160 objMessage.cc = strCC 170 End If 180 If strBCC <> "" Then 190 objMessage.BCC = strBCC 200 End If '==This section provides the configuration information for the remote SMTP server. 210 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'Name or IP of Remote SMTP Server 220 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" 'Type of authentication, NONE, Basic (Base64 encoded), NTLM 230 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic 'Your UserID on the SMTP server 240 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/sendusername") = EmailAccount 'Your password on the SMTP server 250 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/sendpassword") = EmailPassword 'Server port (typically 25) 260 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 'Use SSL for the connection (False or True) 270 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True 'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server) 280 objMessage.Configuration.Fields.Item _ (" http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 290 objMessage.Configuration.Fields.Update '==End remote SMTP server configuration section== 300 DoCmd.Hourglass True 310 objMessage.send 320 DoCmd.Hourglass False ExitHere: 330 On Error Resume Next 340 Set objMessage = Nothing 350 DoCmd.Hourglass False 360 Exit Sub ErrorHandler: 370 Select Case Err Case 0 380 Resume Next 390 Case Else 400 LogError Err.Number, Err.Description, Erl, "Gmail", "mdlGmail" 410 Resume ExitHere 420 End Select End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 17:40 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
sdku, Пробелы бесполезны в HTML. nbsp также может помочь, но все равно таблица расползется, если только не использовать моноширинный шрифт типа Курьера. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 17:43 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
неразрывный пробел https://ru.wikipedia.org/wiki/Неразрывный_пробел ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2016, 17:44 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, спасибо, получилось! Приблизительно вот так: Код: vbnet 1. 2. 3.
Идеально выровнять столбцы не получается, но таблица хорошо читабельна. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2016, 10:02 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgeneполучилось! Приблизительно вот так То есть формат всё же HTML... ну так отформатируй HTML-тегами нормально в таблицу, чего фигнёй-то маяться? Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2016, 10:21 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
MrShin, решил воспользоваться Вашим советом Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Выдает ошибку (во вложении). Пробовал менять значения переменных (в разных комбинациях): - sendusing (1, 2) - smtpserverport (25, 465, 587) - smtpusessl (-1, 0) - smtpauthenticate (0, 1, 2) Пробовал использовать сервера: "smtp.highperf.pro", "smtp.yandex.ru", "smtp.gmail.com" Результат неизменный. Иногда выдает что-то вроде "транспорт не нашел сервер". Закомментированные строчки на результат не влияют. Не подскажете, где еще порыть? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2016, 14:57 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
l-evgene, Я использую этот код для автоматической отправки сообщений об ошибках разработчику, пользовался только gmail, другие сервера не пробовал использовать. Тонкости следующие: 1. Имя-пароль должны быть рабочими, зарегистрированными на gmail 2. Как правило при первой попытке отсылки gmail ничего не отправляет и шлет в зарегистрированный ящик и на запасной мейл сообщение о заблокированной попытке входа (посмотрите в ящик, под которым логинитесь). 3. Для разблокировки нужно разрешить ненадежным приложениям подключаться к ящику. Настройка довольно глубоко, в дополнительных настройках 4. Некоторым клиентам не удавалось отправить сообщения из корпоративной сети из-за настроек корпоративного фаервола. С этим, увы, ничего поделать нельзя без обращения к сетевикам. Что-то мне подсказывает, что у вас именно эта проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2016, 15:23 |
|
Схлопываются пробелы
|
|||
---|---|---|---|
#18+
Нашел ошибку. Если кому-то интересно: Код: vbnet 1. 2.
Сообщение об ошибке: "Не удалось отправить сообщение на SMTP-сервер. Код ошибки транспорта: 0x80040217. Отклик сервера: not available" Код ошибки аксес: -2147220975 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 10:25 |
|
|
start [/forum/topic.php?fid=45&msg=39257577&tid=1613459]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
40ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 334ms |
total: | 471ms |
0 / 0 |