Member 14562483 Ответов: 3

Проблема шрифта Outlook в VBA


Привет
У нас есть ниже код для запуска электронной почты Outlook:

t OL = CreateObject("Outlook.Application")
Set EmailItem = OL.CreateItem(olmailitem)
                
With EmailItem
    .To = sMyOpsStaffNO
    '.cc = sMyCaseworkerid
                
    .Subject = "RESTRICTED CLIENT"
                
    .body = "Thank you for your Referral Request logged as:= " & sMyCCESMno & Chr(10) _
    & "Case Reference Number:= " & sMyCaseNumber & Chr(10) _
    & "Employer ERN:= " & sMyERN & Chr(10) _
    & "Employer Name:= " & sMyERNName & Chr(10) & Chr(10) _
    & "I have identified that the referral submitted contained an error therefore we are rejecting the referral sent to us for the following reason(s):-" & Chr(10) & Chr(10) _
    & "###########################################################################################################" & Chr(10) _
    & sResp & Chr(10) _
    & "###########################################################################################################" & Chr(10) & Chr(10) _
    & "Many Thanks" & Chr(10) & Chr(10) & Chr(10) & Chr(10) _
    & uName & Chr(10) _
    & "Payment and Services Customer Service Team" & Chr(10) _
    & "E_M_A_I_L_B_L_O_C_K"

    '''.Display
    '''.Save
    EmailItem.DeleteAfterSubmit = True
    EmailItem.send
    
End With


Это письмо запускается с размером шрифта 1638. Мы проверили настройки outlook, и размер шрифта установлен на 12.

Не знаю, почему это меняется с электронной почтой, вызванной вышеприведенным кодом.

Пожалуйста, посоветуйте.

спасибо
Параг

Что я уже пробовал:

Мы проверили настройку размера шрифта Outlook.

3 Ответов

Рейтинг:
2

Patrice T

Цитата:
Это письмо запускается с размером шрифта 1638. Мы проверили настройки outlook, и размер шрифта установлен на 12.

Этот фрагмент кода отправляет обычную текстовую электронную почту, поэтому не пытайтесь установить тип или размер шрифта. Существует просто не настройка шрифта, связанная с текстовым почтовым сообщением, Эта настройка связана с приложением.
Размер шрифта зависит от настроек клиента.
Вам нужно использовать электронную почту HTML, чтобы разрешить настройку типа и размера шрифта на вашей стороне.


Рейтинг:
1

raddevus

Это звучит так, как будто вы говорите, что проблема заключается в том, что вы не меняете шрифт, но по какой-то причине он устанавливается на шрифт 1638 точек. В этом-то и проблема?

Интересно, что вы устанавливаете только один байт-Chr(10) - для CrLf - в ОС Windows. Обычно операционные системы Windows ожидают 2-байтовую строку, заканчивающуюся Chr(10) & Chr(13) CrLf.
Почему ты не пользуешься Constants.vbCrLf?
Я упоминаю об этом, потому что это может быть нечетное смещение байта, так как Outlook, вероятно, ожидает, что тело документа будет UTF-8, и это определяется следующим образом: "UTF-8-это кодировка символов переменной ширины, способная кодировать все 1,112,064[1] допустимых кодовых точек в Unicode использование от одного до четырех 8-битных байтов."*

Когда вы видите эти странные вещи в тексте, это часто бывает так : когда система пытается понять поток байтов, но не может.

В качестве теста, возможно, полностью удалите Chr(10) и посмотрите, что вы получите. Если вы можете попытаться заменить их на Constants.vbCrLf.

*от UTF-8 - Википедия[^]


Member 14562483

Спасибо за ваш ответ.
Мне интересно, как этот код работал нормально, и вдруг возникла проблема с размером шрифта.

Рейтинг:
0

Maciej Los

Приведенный выше фрагмент кода VBA не связан с размером шрифта, если только вы не показали ту часть, которая его изменяет. Вы должны изменить шрифт по умолчанию для электронной почты: Измените шрифт или цвет текста по умолчанию для сообщений электронной почты - Outlook[^]

Для html body прочтите следующее: excel vba - изменение типа и размера шрифта HTML email body в VBA - переполнение стека[^]