Я пытаюсь настроить Amazon SES в первый раз, я не смог ни разу отправить электронное письмо, у меня несколько дней на это, и я становлюсь довольно отчаянным, обычно я просто вставляюучетные данные SMTP из моего веб-отеля, но сейчас я использую цифровую каплю океана и должен использовать Amazon SES, надеюсь, кто-то может помочь.
Система
Стек Ubuntu LAMP
Amazon:
- Имя сервера: email-smtp.eu-west-1.amazonaws.com
- Порт:25, 465 или 587
- Использовать безопасность транспортного уровня (TLS): Да
Почта от
mail.mywebsite.com
Песочница
Нет, учетная запись была обновлена и находится вне песочницы.
Проверка домена
Подтверждение по электронной почте
Одобренным подтверждением является мое личное письмо, не смотрите его.Ошибка - электронное письмо, которое я пытался зарегистрировать на домене, который уже подтвержден.
SMTP
- Имя пользователя: myusername
- Пароль: mypassword
КЛЮЧИ ДОСТУПА
- Public: mypublickey
- Private: myprivatekey
Я пытался использовать phpmailer и Amazon SES SDK, и я пытался использовать учетные данные SMTP и мои ключи доступа AWS в качестве имени пользователя / пароля, но ничего не получалось.
require_once('mail/PHPMailerAutoload.php');
$mail = new PHPMailer;
$email = "example@myemai.com";
$name = "John";
try {
$mail->IsSMTP(true);
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";
$mail->Host= "mail.mywebsite.com"; // Have also tried email-smtp.eu-west-1.amazonaws.com
$mail->Port = "587";
$mail->Username = 'A332KIA214JSI743NW3NUI7MA'; //ACCESS KEY (NOT REAL)
$mail->Password = 'nTSNZcBvF34FDGDFP1Y0knGj80wzbhjQDcQomnjfP7O6'; // SECRET KEY (NOT REAL)
$mail->setFrom('noreply@mywebsite.com', 'noreply@mywebsite.com');
$mail->addAddress($email, $name);
$mail->isHTML(true);
$mail->Subject = 'My subject - Headline';
$mail->Body = '<center><p>Hello World</p></center>';
if ($mail->send()) {
$getMessages[] = ["success" => "Confirmation sent to " . $reg_email];
} else {
$getMessages[] = ["error" => "ERROR -> $mail->ErrorInfo;"];
}
} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
Я получаю эту ошибкуот PHPMAILER ERROR -> SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting;
Я пытался использовать пример Amazon PHP SDK из их документации здесь , но он выдает ошибки при попытке запросить автозагрузчик.
PHP
require_once('aws/aws-autoloader.php');
Ошибка
Warning: require(/var/www/html/aws/Aws/functions.php): failed to open stream: No such file or directory in /var/www/html/aws/aws-autoloader.php on line 1167
Fatal error: require(): Failed opening required '/var/www/html/aws/Aws/functions.php' (include_path='.:/usr/share/php') in /var/www/html/aws/aws-autoloader.php on line 1167
Если я добавлю часть использования, я получу эту ошибку вместо
PHP
require_once('aws/aws-autoloader.php');
use Aws\Ses\SesClient;
use Aws\Exception\AwsException;
Error:
Parse error: syntax error, unexpected 'use' (T_USE) in /var/www/html/pages/register.php on line 130
Структура папок
У меня не установлен композитор.
Все, что я хочу - это иметь возможность отправлять электронные письма с PHP, когда пользователи регистрируются через SES SMTP.
Нужно ли каким-либо образом регистрировать электронные письма или я могу отправлять их с любого электронного письма, когдадомен подтвержден?и т.д.: noreply@mywebsite.com, admin@mywebsite.com и help@mywebsite.com?