Отправка электронных писем из ec2 с использованием SES и SwiftMailer

#php #email #amazon-ec2 #swiftmailer #amazon-ses

#php #Адрес электронной почты #amazon-ec2 #swiftmailer #amazon-ses

Вопрос:

Я запустил и запустил свой экземпляр ec2 на California узле, все работает, кроме моего простого contact.php форма.

Я много читал о том, что с ec2 действительно сложно отправлять электронные письма. И это так, кажется, ничего не работает «

Таким образом, я наткнулся на SiftMailer и установил его на экземпляр ec2, работающий под управлением Linux от Amazon, используя yum install php-swift-Swift.noarch

Я также настроил учетные данные ses в кластере Oregon (потому что у них нет почтовой программы в Калифорнии)

Теперь для кода, очень простого:

 <?php
    require '/usr/share/pear/Swift/swift_required.php';
    $transport = new Swift_SmtpTransport(
      'email-smtp.us-west-2.amazonaws.com', 465, 'ssl', 'KEY' ,'SECRET'  );
 // $transport->setUserName('')


  //Create the Mailer using your created Transport
 $mailer = Swift_Mailer::newInstance($transport);

  //Create the message
 $message = Swift_Message::newInstance();
 $message->setSubject("What up?");
 $message->setFrom(array('mygmail@gmail.com'));
 $message->setTo(array('mygmail@gmail.com'));
 $message->setBody("
     <p>
     Dude, I'm <b>totally</b> sending you email via AWS.
     </p>
     ", 'text/html');

$mailer->send( $message );

 ?>
  

Теперь ошибка, которую я получаю

 Fatal error: Uncaught exception 'Swift_TransportException' with message 'Expected response 
code 250 but got code "530", with message "530 Authentication required "' in 
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php:386 Stack trace: #0 
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php(281): 
Swift_Transport_AbstractSmtpTransport->_assertResponseCode('530 Authenticat...', Array) #1 
/usr/share/pear/Swift/Swift/Transport/EsmtpTransport.php(245): 
Swift_Transport_AbstractSmtpTransport->executeCommand('MAIL FROM: executeCommand('MAIL 
FROM: _doMailFromCommand('mygmail@gmail...') #4 
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php(444): 
Swift_Transport_AbstractSmtpTransport->_doMailTransaction(Object(Swift_Message), 
  

‘mygmail@gmail …’, массив, в
/usr/share/pear/Swift/Swift/Transport/AbstractSmtpTransport.php в строке 386

Итак, «mygmail» — это мой фактический адрес электронной почты, который я просто вставил в свой пост. И «КЛЮЧ» и «Секрет» — это те, которые я получил, когда я создал учетные данные в IAM, которые мне было указано в инструкциях SES.

ТАКЖЕ я проверил это электронное письмо в веб-интерфейсе SES.

Пожалуйста, дайте мне знать, если мне нужно сделать это более понятным.

Комментарии:

1. shout.setfive.com/2012/11/04/…

2. @JakeGould Это действительно не помогает

3. Вы поняли это?

4. Годы спустя — к сожалению, нет.

Ответ №1:

Не уверен, исправили вы это или нет, но, возможно, вы неправильно использовали свои учетные данные, поскольку вы не указали эту информацию здесь.

Я бы предложил попробовать заменить:
'KEY' с вашим адресом электронной почты 'mygmail@gmail.com'
'SECRET' с вашим адресом электронной почты 'your_gmail_password'

Такие настройки работали у меня на Yii2 с Swiftmailer.

Ответ №2:

Я думаю, вам нужно включить учетные данные SMTP вашего AWS SES.