|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Послать письмо с помощью Microsoft Office Outlook |
|
Послать письмо с помощью Microsoft Office Outlook
|
Новый участник Сообщения: 23 |
Профиль | Отправить PM | Цитировать Подскажите, пожалуйста, как создать почтовое сообщение (без вложений) при помощи программы Microsoft Office Outlook.
Задача стоит такая - в конце месяца разослать участникам проекта сообщения с напоминанием заполнить необходимые документы. Спасибо. |
|
Отправлено: 11:34, 17-11-2009 |
Новый участник Сообщения: 46
|
Профиль | Отправить PM | Цитировать А почему напрямую слать нельзя?
|
Отправлено: 16:35, 17-11-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Посмотри, сдесь есть пример. Также сдесь есть библиотека для работы с программой OutlookExpress. (Может лучше через эту программу отослать). И еще, сдесь есть обсуждение и пример, как напрямую отослать email. Ну и напоследок, еще можно отослать email с помощью функции _INetMail(), описание которой есть в справке (Ета функция отправляет email из почтовой програмы, что по умолчанию).
|
------- Последний раз редактировалось beve, 17-11-2009 в 17:03. Отправлено: 16:47, 17-11-2009 | #3 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать да вроде _INetMail() работает, но сообщения на русском приходят в виде
ïÞÅÎØ âù-ÙÓÔÒÁÑ ÂÕÒÁÑ ÌÉÓÁ ÐÒÙÇÁÅÔ ÞÅÒÅÚ ÐÏÄßÑÞÅÇÏ îéëïîá á ×ÏÔ ÉÓÈÏÄÎÉË это уже вопрос 2 |
Отправлено: 17:22, 17-11-2009 | #4 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Попробуйте лучще напрямую отправить:
#Include<file.au3> ;------------------обязательные поля для заполнения------------------------- $SmtpServer = "smtp.mail.ru" ; адресс smtp сервера (тут для mail.ru) $Username = "Test@list.ru" ; ; название твоего почтового ящика (username for the account used from where the mail gets sent - REQUIRED) $Password = "Test" ;Пароль к твоей почте (password for the account used from where the mail gets sent - REQUIRED) $FromName = "Test@list.ru" ; Твое имя (имя отправителя)) $FromAddress = "Test@list.ru" ; название твоего почтового ящика $ToAddress = "kontakt@list.ru" ; Почта того кому шлется письмо $Subject = "Привет" ; тема сообщения $Body = "Здравствуйте, как жизнь!" ; Текст сообщения ;--------------------------------------------------------------------------------------- $AttachFiles = "" ; файлы которые нужно присоединить к письму) the file you want to attach- leave blank if not needed(можно оставить так как есть) $CcAddress = "" ; address for cc - leave blank if not needed $BccAddress = "" ; address for bcc - leave blank if not needed $Importance = "High" ; Send message priority: "High", "Normal", "Low" $IPPort = 25 ; port used for sending the mail $ssl = 0 ; enables/disables secure socket layer sending - put to 1 if using httpS ;~ $IPPort=465 ; GMAIL port used for sending the mail ;~ $ssl=1 ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS ;################################## ; Script ;################################## Global $oMyRet[2] Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") $rc = _INetSmtpMailCom($SmtpServer, $FromName, $FromAddress, $ToAddress, $Subject, $Body, $AttachFiles, $CcAddress, $BccAddress, $Importance, $Username, $Password, $IPPort, $ssl) If @error Then MsgBox(0, "Error sending message", "Error code:" & @error & " Description:" & $rc) EndIf ; ; The UDF Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0) Local $objEmail = ObjCreate("CDO.Message") $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>' $objEmail.To = $s_ToAddress Local $i_Error = 0 Local $i_Error_desciption = "" If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress $objEmail.Subject = $s_Subject If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then $objEmail.HTMLBody = $as_Body Else $objEmail.Textbody = $as_Body & @CRLF EndIf If $s_AttachFiles <> "" Then Local $S_Files2Attach = StringSplit($s_AttachFiles, ";") For $x = 1 To $S_Files2Attach[0] $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x]) ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console If FileExists($S_Files2Attach[$x]) Then $objEmail.AddAttachment ($S_Files2Attach[$x]) Else ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF) SetError(1) Return 0 EndIf Next EndIf $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer If Number($IPPort) = 0 then $IPPort = 25 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort ;Authenticated SMTP If $s_Username <> "" Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password EndIf If $ssl Then $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True EndIf ;Update settings $objEmail.Configuration.Fields.Update ; Set Email Importance Switch $s_Importance Case "High" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High" Case "Normal" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal" Case "Low" $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low" EndSwitch $objEmail.Fields.Item ("urn:schemas:mailheader:content-type") = "text/plain; charset=UTF-8" $objEmail.Fields.Update ; Sent the Message $objEmail.Send If @error Then SetError(2) Return $oMyRet[1] EndIf $objEmail="" EndFunc ;==>_INetSmtpMailCom ; ; ; Com Error Handler Func MyErrFunc() $HexNumber = Hex($oMyError.number, 8) $oMyRet[0] = $HexNumber $oMyRet[1] = StringStripWS($oMyError.description, 3) ConsoleWrite("### COM Error ! Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF) SetError(1); something to check for when this function returns Return EndFunc ;==>MyErrFunc |
|
------- Отправлено: 17:54, 17-11-2009 | #5 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать спасибо за скрипт. но что-то у меня не склеилось - он не работает.
мне все же не аттач нужен а именно Body. а _INetSmtpMail работает, но выдает неверную кодировку( нет ли в АИ способа указать кодировку как WSH при помощи SetShar? $s_Body = "тест" $Response = _INetSmtpMail ($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject, $s_Body, $s_helo, $s_first, $s_trace) автоит видимо выдает что-то по умолчанию , но не кириллцу. в заголовках письма вот такая строка Content-Type: text/plain; charset=US-ASCII |
Отправлено: 13:05, 18-11-2009 | #6 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата SvetlanaK:
Отсылал 2 раза и открывал двумя разными почтовыми программами: The Bat и Pop Peeper, в обоих случаях письмо получено читабельно и в кирилице. (Тему и имя пользователя нужно писать в транслите либо на англ...) |
|
------- Отправлено: 18:40, 18-11-2009 | #7 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать В том то и дело, что все почтовые программы кроме Outlook-а присылают письма через скрипт АИ на русском.
Ну что ж, альтернатива WSH, видимо дело в самом Outlook. В любом случае спасибо огромное за скрипты и советы. |
Отправлено: 12:15, 19-11-2009 | #8 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Сетевая адресная книга для Microsoft Office Outlook | boomer007 | Хочу все знать | 5 | 08-12-2011 12:37 | |
Microsoft OUTLOOK 2003-сохранение с помощью Autolt | TERMINAL | AutoIt | 1 | 21-02-2009 16:27 | |
V. 2007 - Microsoft Office Outlook 2003 и UUENCODE | Grekalov | Microsoft Exchange Server | 1 | 14-01-2009 17:24 | |
настройка Microsoft Office Outlook 2003 под Rambler | poseydon | Хочу все знать | 1 | 22-11-2005 13:24 | |
не могу послать письмо | Aragorn the 1st | Хочу все знать | 2 | 19-10-2004 22:25 |
|