Юрий
Новичок
- Сообщения
- 82
- Репутация
- 3
День добрый. Вотс функция найденная на этом же форуме, но выдаёт ошибку:
"The requested action with this object has failed.:
With $hMAIL.Configuration.Fields"
Изначальный вид функции: http://autoit-script.ru/index.php/topic,11422.msg75014/topicseen.html#msg75014
"The requested action with this object has failed.:
With $hMAIL.Configuration.Fields"
Код:
Send_Email()
Func Send_Email()
#cs
data - массив стандарной для autoit структуры. Элемент 0 - длина массива, начиная с первого - элементы массива
Порядок элементов:
1 From
2 To
3 Subject
4 Smtp
5 Username
6 Password
7 Port
8 ТекстСообщения
#ce
$str = "http://schemas.microsoft.com/cdo/configuration/"
$hMAIL = ObjCreate ("CDO.Message")
If Not IsObj($hMAIL) Then
MsgBox(8208, "имя программы", "Не найден объект CDO. Отправка почты невозможна", 10)
Else
With $hMAIL
.Bodypart.Charset = "windows-1251" ; Кодировка
.From = "[email protected]"
.To = "[email protected]"
.Subject = "Всё ок!"
.TextBody = "Лови подачу" & @CRLF
.AddAttachment (@ScriptDir & "info.txt") ;файл для отправки
EndWith
With $hMAIL.Configuration.Fields
.Item ($str & "languagecode") = 1049
.Item ($str & "sendusing") = 2
.Item ($str & "smtpserver") = "smtp.yandex.ru" ; SMTP Server
.Item ($str & "smtpauthenticate") = 1
.Item ($str & "sendusername") = "[email protected]" ; username
.Item ($str & "sendpassword") = "pass" ; Пароль SMTP-сервера
.Item ($str & "smtpserverport") = 25 ; Порт
.Item ($str & "smtpconnectiontimeout") = 30
.Update
EndWith
$hMAIL.Send
EndIf
EndFunc
;~ Все хорошо, письма уходят, проблемы возникают при ошибках отправки (недоступен почтовый сервер и так далее). Необходимо эти ошибки перехватить и обработать. Ставим обработчик:
Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
Global $oMyRet[2]
Func MyErrFunc()
$HexNumber = Hex($oMyError.number, 8)
$oMyRet[0] = $HexNumber
$oMyRet[1] = StringStripWS($oMyError.description, 3)
MsgBox(4096,"имя программы","Error Number: " & $HexNumber & " ScriptLine: " & $oMyError.scriptline & " Description:" & $oMyRet[1] & @LF,15)
SetError(1) ; something to check for when this function returns
Return
EndFunc
Изначальный вид функции: http://autoit-script.ru/index.php/topic,11422.msg75014/topicseen.html#msg75014