Автор Тема: Не отправляется сообщение на почту  (Прочитано 165 раз)

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

Оффлайн Dima1337 [?]

  • Осваивающий
  • **
  • Сообщений: 175
  • Репутация: 20
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Доброго времени суток, на просторах форума нашел:
(нажмите для показа/скрытия)
Выдает ошибку
$objEmail.Send
$objEmail^ ERROR
Как справиться?

Правильный вопрос - полдела!

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

Не отправляется сообщение на почту
« Отправлен: Апрель 15, 2018, 17:17:12 »

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 782
  • Репутация: 136
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #1, Отправлен: Апрель 15, 2018, 19:54:33 »
Я пользуюсь таким методом отправки почты, попробуйте - будет ли ошибка :
(нажмите для показа/скрытия)

Оффлайн Dima1337 [?]

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

  • Автор темы
  • Репутация: 20
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #2, Отправлен: Апрель 15, 2018, 20:58:22 »
К сожалению та же шибка, не удается отправить сообщение

Онлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 334
  • Репутация: 79
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #3, Отправлен: Апрель 15, 2018, 22:38:27 »
Попробуйте отловить ошибку может это поможет узнать в чем проблема
Код: AutoIt [Выделить]

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

Re: Не отправляется сообщение на почту
« Ответ #3 Отправлен: Апрель 15, 2018, 22:38:27 »

Оффлайн Dima1337 [?]

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

  • Автор темы
  • Репутация: 20
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #4, Отправлен: Апрель 15, 2018, 23:06:01 »

Онлайн Tempo [?]

  • Продвинутый
  • ***
  • Сообщений: 334
  • Репутация: 79
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #5, Отправлен: Апрель 15, 2018, 23:12:16 »
Dima1337, попробуйте использовать другой почтовый сервис

P.S. Если вы используете gmail убедитесь, что для нужного аккаунта включен доступ небезопасных приложений. В других сервисах такая настройка тоже часто присутствует
« Последнее редактирование: Апрель 15, 2018, 23:17:38 от Tempo »

Оффлайн Dima1337 [?]

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

  • Автор темы
  • Репутация: 20
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Re: Не отправляется сообщение на почту
« Ответ #6, Отправлен: Апрель 16, 2018, 14:28:38 »
Получилось но только через google
https://myaccount.google.com/lesssecureapps

Код: AutoIt [Выделить]
#include <File.au3>

$SmtpServer = 'smtp.gmail.com'
$FromAddress = '********@gmail.com'
$Username = '*********'
$Password = '*********'
$ToAddress = '*********@yandex.ru'
$Subject = 'Просто письмо'
$Body = 'Буквы в письме'
$IPPort = 465

_INetSmtpMailCom($SmtpServer, '', $FromAddress, $ToAddress, $Subject, $Body, '', '', '', $Username, $Password, $IPPort)

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 = 465, $ssl = 1)
    $objEmail = ObjCreate("CDO.Message")

    Global $g_eventerror = 0 ; для проверки, чтобы знать, что COM ошибка произошла. Необходимо сбросить после обработки.
    Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") ; Инициализация обработчика ошибок COM

    $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 $g_eventerror Then
    $g_eventerror = 0
        MsgBox(0, "Тест AutoItCOM", "Тест пройден: Мы получили код ошибки: " & @error)
    Else
        MsgBox(0, "Тест AutoItCOM", "Тест не удался!")
    EndIf

    If @error Then
        SetError(2)
    EndIf
EndFunc   ;==>_INetSmtpMailCom

Func MyErrFunc()
    MsgBox(4096, "Тест AutoItCOM", "Мы перехватили COM ошибку !" & @CRLF & @CRLF & _
            "err.description is: " & @TAB & $oMyError.description & @CRLF & _
            "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
            "err.number is: " & @TAB & Hex($oMyError.number, 8) & @CRLF & _
            "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
            "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
            "err.source is: " & @TAB & $oMyError.source & @CRLF & _
            "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
            "err.helpcontext is: " & @TAB & $oMyError.helpcontext _
            )

    Local $err = $oMyError.number
    If $err = 0 Then $err = -1

    $g_eventerror = $err ; для проверки после того как эта функция сработает
EndFunc
 


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

Re: Не отправляется сообщение на почту
« Ответ #6 Отправлен: Апрель 16, 2018, 14:28:38 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
1 Ответов
1828 Просмотров
Последний ответ Март 10, 2013, 01:16:45
от joiner
1 Ответов
2821 Просмотров
Последний ответ Июль 21, 2013, 14:03:54
от Viktor1703
24 Ответов
3256 Просмотров
Последний ответ Ноябрь 29, 2014, 08:00:14
от multik
13 Ответов
3424 Просмотров
Последний ответ Май 23, 2015, 13:55:12
от urrya
4 Ответов
994 Просмотров
Последний ответ Октябрь 16, 2015, 23:20:37
от alex33
0 Ответов
1377 Просмотров
Последний ответ Март 18, 2016, 06:19:01
от dimas1221
1 Ответов
489 Просмотров
Последний ответ Декабрь 13, 2016, 10:12:07
от urrya
0 Ответов
905 Просмотров
Последний ответ Декабрь 18, 2016, 12:45:25
от mef-t
2 Ответов
3028 Просмотров
Последний ответ Январь 20, 2017, 16:00:40
от TOSTER
2 Ответов
316 Просмотров
Последний ответ Август 26, 2017, 18:32:33
от dr.room