Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема CDO.Message как задать кодировку текста сообщении? (число прочтений - 4523 )
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
CDO.Message как задать кодировку текста сообщении?
09. Февраля 2012 :: 13:41
Печать  
Написал обработку, которая отправляет письма из 1С используя CDO.Message. Все хорошо отправляет, вот только с текстом письма не сложилось, почему то при отправке письмо перекодируется в нечитаемый вид.
Пример обработки можно взять здесь: http://www.rapidshare.ru/2773279

Код для тестирования вот:
Код
Выбрать все
// ===============================

Процедура Сформировать()
    // От кого отправляем и через какой логин

    EmeilОт = "@mail.ru";
    // Кому отправляем - email

    EmeilКому = "Мне@mail.ru";
    // Сервер SMTP

    СерверSMTP = "smtp.mail.ru";
    // Порт SMTP

    ПортSMTP = 25;
    
    // Логин на SMTP

    ЛогинSMTP = "Логин@mail.ru";
    // Пароль на SMTP

    ПарольSMTP = "passwort";
        
    loConfig = CreateObject("CDO.Configuration");
    loCdoMessage = CreateObject("CDO.Message");
    
    loCdoMessage.Configuration = loConfig;
    loCdoMessage.From = EmeilОт;
    loCdoMessage.To = EmeilКому;
    loCdoMessage.Subject = "Проверка кодировки";
    
    ТекстСообщения = "Проверка кодировки";
    HTMLBody = "<html>
    |<head>
    |    <meta content=""text/html; charset=Windows-1251"" http-equiv=""content-type"">
    |<title> Тестовое сообщение </title>
    |</head>
    |<body>
    |<h3>" + ТекстСообщения + "</h3>
    |<p></p>
    |</body>
    |</html>";
    
    loCdoMessage.HTMLBody = HTMLBody;
    //loCdoMessage.AddAttachment(ВложениеПисьма);

    
    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = СерверSMTP;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value = ПортSMTP;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value = 1;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername").Value = ЛогинSMTP;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value = ПарольSMTP;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl").Value = 0;

    loConfig.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout").Value = 60;

    loConfig.Fields.Update();
    loCdoMessage.Send();
    
КонецПроцедуры
 



Попробуйте отправить себе письмо и посмотреть на его текст. Задание кодировки 1251 похоже игнорируется.
  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: CDO.Message как задать кодировку текста сообщении?
Ответ #1 - 09. Февраля 2012 :: 13:57
Печать  
Если тот же текст прилепить как Attachment (вложение) то все нормально отображается:
Код
Выбрать все
ТекТекст = СоздатьОбъект("Текст");
    ТекТекст.ДобавитьСтроку(ТекстСообщения);
    ФайлСообщ = КаталогВременныхФайлов()+"Письмо.html";
    ТекТекст.Записать(ФайлСообщ);

    loCdoMessage.AddAttachment(ФайлСообщ);
 

  
Наверх
IP записан
 
pvase
God Member
*****
Отсутствует



Сообщений: 923
Местоположение: Киев
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: CDO.Message как задать кодировку текста сообщении?
Ответ #2 - 09. Февраля 2012 :: 14:13
Печать  
Нашел, надо было добавить:
Код
Выбрать все
loCdoMessage.BodyPart.Charset = "windows-1251"; 

  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать