Автор Тема: Как создать письмо в Outlook?  (Прочитано 2083 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Попробовал использовать функцию _INetMail, письмо создается, но помимо получателя еще нужно указывать кто в копии и добавлять подпись.
Что посоветуете?

Русское сообщество AutoIt

Как создать письмо в Outlook?
« Отправлен: Июнь 15, 2016, 14:20:48 »

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546

  • Автор темы
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #1, Отправлен: Июнь 15, 2016, 17:49:02 »
Нашел 2 темы по этому поводу
https://www.autoitscript.com/forum/topic/101774-shell-execute-mail-to/#comment-723460
http://forum.ru-board.com/topic.cgi?forum=33&topic=10903&start=600

Все работает, только не понятно как добавлять подпись
Код: AutoIt [Выделить]



CreateMailItem()
Func CreateMailItem()
    Const $olByValue = 1
    Local $olMailItem    = 0
    Local $olFormatRichText = 3
    Local $olImportanceLow   = 0
    Local $olImportanceNormal= 1
    Local $olImportanceHigh  = 2

    $oOApp = ObjCreate("Outlook.Application")
    $oOMail = $oOApp.CreateItem($olMailItem)

    With $oOMail
        .To = ("[email protected]")
        .CC = ("[email protected]")
        .Subject = "email subject"
        .BodyFormat =  $olFormatRichText
;~         .Importance = $olImportanceHigh
        .Body = "email message"
;~         .Attachments.Add ($file, $olByValue , 1)
        .Display
        ;.Send ; doesn't work for security reason
    EndWith
EndFunc
 


Оффлайн Cornet [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 6
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #2, Отправлен: Июнь 16, 2016, 09:32:01 »
Нет у аутлука какого-то специального метода вставки подписи.
Если вам нужно вставлять уже готовые подписи — они хранятся в папке C:\Users\[Name]\AppData\Roaming\Microsoft\Signatures\
Берите в любом удобном вам формате и вставляйте в .Body после основного текста (хотя в вашем случае наверное правильнее вставлять в .RTFBody если вы  такой формат письму задали)
Вот тут все свойства объекта письмо https://msdn.microsoft.com/en-us/library/dn320330.aspx

P.S. Так как сам сижу в TheBat, решал эти проблемы через шаблоны, может вам будет тоже удобно — в аутлуке тоже есть такая возможность.

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546

  • Автор темы
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #3, Отправлен: Июнь 16, 2016, 10:30:45 »
Спасибо за ссылку. Да, нужно вставлять уже готовые подписи.
Но если я совместно использую Body и HTMLBody или RTFBody, то в теле письма остается только тот текст который вставляется последним.
В принципе можно читать HTML файл и перед вставкой добавлять текст письма в HTML код. Но может можно как-то добавить Body а потом HTMLBody без удаления предыдущего текста?


Русское сообщество AutoIt

Re: Как создать письмо в Outlook?
« Ответ #3 Отправлен: Июнь 16, 2016, 10:30:45 »

Оффлайн Cornet [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 6
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #4, Отправлен: Июнь 16, 2016, 12:45:53 »
А зачем их совместно использовать? Надо что-то одно выбрать и им пользоваться. Не может письмо быть одновременно и html и текстовым

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546

  • Автор темы
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #5, Отправлен: Июнь 16, 2016, 13:34:26 »
Совместно чтобы добавлять текст и отформатированную подпись в HTML формате отдельно, а так придется текст в HTML впихивать, но это уже мелочи.
Спасибо за информацию

Оффлайн Cornet [?]

  • Новичок
  • *
  • Сообщений: 36
  • Репутация: 6
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #6, Отправлен: Июнь 16, 2016, 13:48:55 »
Не, такой халявы они не сделали ;)
Ну на самом деле не так и сложно:
Открыть хтмл подпись
найти в ней тег body
найти после него тег div
и потом вставить текст свой
<p class=MsoNormal>А тут основной текст строка 1</p>
<p class=MsoNormal>А тут основной текст строка 2</p>
<p class=MsoNormal>А тут основной текст строка 3</p>
<p class=MsoNormal><o:p>&nbsp;</o:p></p>

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 278
  • Репутация: 29
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как создать письмо в Outlook?
« Ответ #7, Отправлен: Июнь 16, 2016, 14:34:41 »
Код: AutoIt [Выделить]
.Attachments.Add ($file, $olByValue , 1)

Добавляет Attachment прямо в тело письма, а как сделать нормально?


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться

Русское сообщество AutoIt

Re: Как создать письмо в Outlook?
« Ответ #7 Отправлен: Июнь 16, 2016, 14:34:41 »

Оффлайн Vovsla [?]

  • Осваивающий
  • **
  • Сообщений: 546

  • Автор темы
  • Репутация: 26
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Как создать письмо в Outlook?
« Ответ #8, Отправлен: Июнь 16, 2016, 14:51:50 »
Если использовать не Body а HTMLBody, то вложение прикрепляется нормально

Оффлайн Malderin [?]

  • Новичок
  • *
  • Сообщений: 57
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как создать письмо в Outlook?
« Ответ #9, Отправлен: Февраль 12, 2019, 08:48:09 »
Друзья, поясните в чем проблема.
Код: AutoIt [Выделить]
CreateMailItem()
Func CreateMailItem()
    Local $olMailItem    = 0
    Local $olFormatRichText = 3
    Local $olImportanceLow   = 0
    Local $olImportanceNormal= 1
    Local $olImportanceHigh  = 2

    $oOApp = ObjCreate("Outlook.Application.14")
    $oOMail = $oOApp.CreateItem($olMailItem)

    With $oOMail
        .To = ("[email protected]")
        .Subject = "email subject"
        .BodyFormat =  $olFormatRichText
        .Importance = $olImportanceHigh
        .Body = "email message"
        .Attach = "myfile"
        .Display
        ;.Send
    EndWith
EndFunc
 


Код исполняется, сообщение создается. Но при проверке на ошибки выдает вот это:
"D:\Alex\Utils\_AutoIt\AutoIt\01_Цех904\ЖИ заполнение\тест.au3"(13,10) : error: missing separator character before keyword.
        .To
~~~~~~~~~^
Что делать не знаю, подскажите как победить?
Версия AutoIt 3.3.12.0, офис 2010.


Добавлено: Февраль 12, 2019, 09:00:12
Заменил
Код: AutoIt [Выделить]
на
Код: AutoIt [Выделить]
.Recipients.Add ("[email protected]")


И все заработало, вопрос снимается.


Добавлено: Февраль 12, 2019, 10:53:48
Нет, все таки первый  вопрос остается актуальным. Конструкция
Код: AutoIt [Выделить]
.Recipients.Add ("[email protected]")


конечно работает, но выводит сообщение о безопасности, победить которое мне увы не удалось (хотя я пытался).

Подскажите все таки, кто знает, как победить:
"D:\Alex\Utils\_AutoIt\AutoIt\01_Цех904\ЖИ заполнение\тест.au3"(13,10) : error: missing separator character before keyword.
        .To
~~~~~~~~~^
« Последнее редактирование: Февраль 12, 2019, 10:53:48 от Malderin, Причина: Объединение сообщений »

Оффлайн pvnn [?]

  • Осваивающий
  • **
  • Сообщений: 278
  • Репутация: 29
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как создать письмо в Outlook?
« Ответ #10, Отправлен: Февраль 12, 2019, 12:58:17 »
Вот так все работает
(нажмите для показа/скрытия)

Оффлайн Malderin [?]

  • Новичок
  • *
  • Сообщений: 57
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Как создать письмо в Outlook?
« Ответ #11, Отправлен: Февраль 12, 2019, 13:33:54 »
Подсунул Au3Check.exe версии 3.3.13.15 и приписал в разделе [Compatibility] файла CW.ini эту версию:
Au3CheckVersion=3.3.10.x, 3.3.12.x, 3.3.14.x, 3.3.13.x
Проблема ушла.

Русское сообщество AutoIt

Re: Как создать письмо в Outlook?
« Ответ #11 Отправлен: Февраль 12, 2019, 13:33:54 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
8 Ответов
6210 Просмотров
Последний ответ Декабрь 22, 2017, 09:06:27
от zbz
3 Ответов
5403 Просмотров
Последний ответ Февраль 09, 2014, 17:55:55
от fuflik
0 Ответов
2077 Просмотров
Последний ответ Декабрь 18, 2012, 18:18:53
от Anb1s
1 Ответов
987 Просмотров
Последний ответ Декабрь 09, 2015, 21:50:54
от Alofa
3 Ответов
5516 Просмотров
Последний ответ Апрель 24, 2016, 08:19:03
от ВиталийВВ
5 Ответов
1970 Просмотров
Последний ответ Февраль 26, 2016, 09:09:56
от vNtek
1 Ответов
1645 Просмотров
Последний ответ Апрель 28, 2016, 08:44:39
от pvnn
0 Ответов
1153 Просмотров
Последний ответ Май 26, 2016, 12:48:40
от ВиталийВВ
27 Ответов
3551 Просмотров
Последний ответ Декабрь 10, 2016, 16:15:16
от ra4o
1 Ответов
467 Просмотров
Последний ответ Декабрь 06, 2018, 16:48:38
от Vovsla