none
Не отправляется письмо через sendgrid в Azure RRS feed

  • Общие обсуждения

  • Есть виртуальная машина на Azure. На ней стоит windows server 2012 и iis8. Для работы с письмами создан ресурс Sendgrid. Для пересылки писем есть настройка:

            'mailer' => [
                'class' => 'yii \ swiftmailer \ Mailer',
                'viewPath' => '@ common / mail',
                // отправлять все письма в файл по умолчанию. Вы должны установить
                // 'useFileTransport' в false и сконфигурировать транспорт
                // для почтовых программ для отправки реальных электронных писем.
                'useFileTransport' => true,
            ], 

    Сформировано сообщение:

                    ! Yii :: $ app-> mailer
                        -> compose ('signup-ok', ['password' => $ password, 'user' => $ user])
                        -> setTo ($ user-> email)
                        -> setFrom ( [Yii :: $ app-> params ['fromEmail'] => 'XXXXXXX.ru'])
                        -> setSubject ('XXXXXXXXXXXX.ru')
                        -> send ()
                ) {
                    throw new \ DomainException ('Ошибка отправки сообщения « );
                }

    Подскажите, пожалуйста, что еще надо сделать, чтобы почта ушла. Надо ли где-то прописывать транспорт Sendgrid? Дело в том, что этот проект мне передали для доработки. Программист предыдущий уволился. Но почта у него уходила. Sendgrid был подключен. Могу но НЕ найти в проекте где прописывается транспорт Sendgrid. Подскажите, пожалуйста, что делать. Очень надеюсь на помощь.

     



    15 января 2020 г. 8:47

Все ответы

  • Здравствуйте,

    Надеюсь будет полезным: Как отправлять электронную почту с помощью SendGrid и Azure


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    15 января 2020 г. 14:38
    Модератор
  • Максим, спасибо за ссылку.

    1. Я видел аналогичные ссылки, но для php. Я хотел разобраться в коде программы, написанной предыдущим разработчиком. Хотел понять почему у него работает отправка почты, а у меня нет. Ведь я использую тот же проект. Правда, проект работал под Linux. У меня проект работает под windows sever 2012 и iis8. Подскажите, пожалуйста, может быть в этом дело.

    2. На данный момент я настроил работу с пересылкой почты как предлагается в справочной документации Azure для ресурса Sendgrid.

    Транспорт:

            'mailer' => [
                'class' => 'yii\swiftmailer\Mailer',
                'viewPath' => '@common/mail',
    'transport' => [
    'class' => 'Swift_SmtpTransport', 
    'host' => 'smtp.sendgrid.net',
    'username' => 'ххххххх',
    'password' => 'ххххххх',
    'port' => '587', 
    'encryption' => 'tls',
    ], 

    Сообщение:

           if  (  ! Yii :: $ app-> mailer
                        -> compose ('signup-ok', ['password' => $ password, 'user' => $ user])
                        -> setTo ($ user-> email)
                        -> setFrom ( [Yii :: $ app-> params ['fromEmail'] => 'XXXXXXX.ru'])
                        -> setSubject ('XXXXXXXXXXXX.ru')
                        -> send ()
                ) {
                    throw new \ DomainException ('Ошибка отправки сообщения « );
                }

    Но при этом выдается сообщение об ошибке:

    Не удалось пройти проверку подлинности на SMTP-сервере с именем пользователя «хххххх», используя 2 возможных средства проверки подлинности. Аутентификатор LOGIN возвратил ожидаемый код ответа 250, но получил пустой ответ. Аутентификатор PLAIN возвратил ожидаемый код ответа 250, но получил пустой ответ. 

    Подскажите, пожалуйста, в чем может быть дело. Может я не правильно указал username и password для транспорта. Тогда что надо указывать в этих параметрах. Буду рад любой помощи.


    • Изменено TatRud 18 января 2020 г. 8:32
    18 января 2020 г. 8:05
  • Решил проверить telnet подключение smtp к Sendgrid/ Перевел в 64-разрядное значение username, password, указанные при создании ресурса Sendgrid в Azure. Подставил эти значения при аутентификации, но мне выдалось сообщение об ошибке:
    535 Authentication failed: Bad username / pasword.
    Почему это происходит ? Что я делаю не так. Как получить username, password, указанные при создании ресурса Sendgrid в Azure ? Подскажите, пожалуйста.
    19 января 2020 г. 9:52
  • Здравствуйте,

    Вопросы по SendGrid мне кажется лучше задавать его разработчикам: Can't log in to your account?


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    20 января 2020 г. 8:53
    Модератор