Что нового

[Ошибки] Ошибка при отправки письма

be4hoctb

Новичок
Сообщения
38
Репутация
0
Ошибка на последней строке $hMAIL.Send
Вроде все верно, в чем проблема?
Код:
Func _Send_Email_Ataka($Body, $Subject)
    $FromAddress = '********@gmail.com' ; Адрес отправителя
    $ToAddress = '*********@gmail.com' ; Адрес получателя
    $Username = '**********@gmail.com' ; Логин отправителя
    $Password = "***********" ; Пароль почты отправителя
    $SMTPServer = 'smtp.gmail.com' ; SMTP-сервер
    $Port = 465 ; Порт сервера
    $SSL = 1 ; SSL
    $AddAttachment = ('C:\*****.bmp');отправляем файл

    $conf = "http://schemas.microsoft.com/cdo/configuration/"
    $hMAIL = ObjCreate ("CDO.Message")
    With $hMAIL
        .From = $FromAddress
        .To = $ToAddress
        .Subject = $Subject
        .TextBody = $Body
        .AddAttachment ('C:\*****.bmp')
    EndWith
    With $hMAIL.Configuration.Fields
        .Item ($conf & "sendusing") = 2
        .Item ($conf & "smtpauthenticate") = 1
        .Item ($conf & "sendusername") = $Username
        .Item ($conf & "sendpassword") = $Password
        .Item ($conf & "smtpserver") = $SMTPServer
        .Item ($conf & "smtpserverport") = $Port
        .Item ($conf & "smtpusessl") = $SSL
        .Update
    EndWith
    $hMAIL.Send
EndFunc
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
http://autoit-script.ru/index.php?topic=19682.msg117733#msg117733
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Пробовал с "gmail.com" - ошибки не даёт, но ничего и не отправляет(присылает письмо о попытке несанкционированного входа в аккаунт gmail :smile: ), с "mail.ru" - всё работает.
Какую ошибку Вам даёт ?
 
Автор
B

be4hoctb

Новичок
Сообщения
38
Репутация
0
ra4o сказал(а):
Пробовал с "gmail.com" - ошибки не даёт, но ничего и не отправляет, с "mail.ru" - всё работает.
Какую ошибку Вам даёт ?


Ошибку этой строки выдало (пробовал на yandex.ru)
Код:
$objEmail.Configuration.Fields.Update
$objEmail.Send


Вот полный вариант
Код:
#AutoIt3Wrapper_Run_AU3Check= N
#include <File.au3>

$SmtpServer = 'smtp.yandex.ru'
$FromAddress = '*****@yandex.ru'
$Username = '*****@yandex.ru'
$Password = '*****'
$ToAddress = '*****@gmail.com'
$Subject = 'тема письма'
$Body = 'содержание письма'
_INetSmtpMailCom($SmtpServer, '', $FromAddress, $ToAddress, $Subject, $Body, '', '', '', $Username, $Password)
Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $s_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 1)
    $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($s_Body, "<") And StringInStr($s_Body, ">") Then
        $objEmail.HTMLBody = $s_Body
    Else
        $objEmail.Textbody = $s_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])
            If FileExists($S_Files2Attach[$x]) Then
                $objEmail.AddAttachment($S_Files2Attach[$x])
            Else
                $i_Error_desciption = $i_Error_desciption & @LF & 'File not found to attach: ' & $S_Files2Attach[$x]
                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
    $objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    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
    $objEmail.Configuration.Fields.Update
    $objEmail.Send
    If @error Then
        SetError(2)
    EndIf
EndFunc   ;==>_INetSmtpMailCom
P.S: Почему перестал работать предыдущий вариант? Он был очень удобен.
 

Вложения

  • 2016-01-26 09-04-42 AutoIt Error.png
    2016-01-26 09-04-42 AutoIt Error.png
    2.1 КБ · Просмотры: 5

alex33

Скриптер
Сообщения
1,457
Репутация
186
Для Gmail:
отсылать то будет или нет??
если нет, значит надо копаться в настройках твоего аккаунта, там есть такая функция как запретить smtp, запретить авторизацию без проверки и ещё что-то...
Заблокирована попытка входа в аккаунт: ненадежное приложение
Кто-то хотел войти в ваш аккаунт через ненадежное приложение. Мы заблокировали эту попытку.
Решение: Заходим вот сюда https://myaccount.google.com/security?hl=ru&pli=1
и включаем:
Ненадежные приложения разрешены
Некоторые сторонние приложения используют технологии входа, которые могут ослабить защиту вашего аккаунта. Мы рекомендуем отключить доступ для таких приложений. Если вы все же хотите работать с ними, включите эту настройку.
Вот и всё. Сохраняем и всё должно отправлять.
 
Верх