#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.