Невозможно отправить электронное письмо от Amazon SES smtp - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь настроить Amazon SES в первый раз, я не смог ни разу отправить электронное письмо, у меня несколько дней на это, и я становлюсь довольно отчаянным, обычно я просто вставляюучетные данные SMTP из моего веб-отеля, но сейчас я использую цифровую каплю океана и должен использовать Amazon SES, надеюсь, кто-то может помочь.

Система

Стек Ubuntu LAMP

Amazon:

  • Имя сервера: email-smtp.eu-west-1.amazonaws.com
  • Порт:25, 465 или 587
  • Использовать безопасность транспортного уровня (TLS): Да

Почта от

mail.mywebsite.com

Песочница

Нет, учетная запись была обновлена ​​и находится вне песочницы.

Проверка домена

enter image description here

Подтверждение по электронной почте

Одобренным подтверждением является мое личное письмо, не смотрите его.Ошибка - электронное письмо, которое я пытался зарегистрировать на домене, который уже подтвержден.

enter image description here

SMTP

  • Имя пользователя: myusername
  • Пароль: mypassword

enter image description here

КЛЮЧИ ДОСТУПА

  • 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

Структура папок

enter image description here

У меня не установлен композитор.

Все, что я хочу - это иметь возможность отправлять электронные письма с PHP, когда пользователи регистрируются через SES SMTP.

Нужно ли каким-либо образом регистрировать электронные письма или я могу отправлять их с любого электронного письма, когдадомен подтвержден?и т.д.: noreply@mywebsite.com, admin@mywebsite.com и help@mywebsite.com?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...