无法从Amazon SES SMTP发送电子邮件

时间:2019-05-25 10:52:14

标签: php amazon-web-services email smtp amazon-ses

我正在尝试首次设置Amazon SES,我在任何时候都无法发送电子邮件,我已经花了几天时间,而且我非常绝望,通常,我只是输入来自我的Web酒店的SMTP凭证,但是现在我正在运行Digital Ocean Droplet,并且必须使用Amazon SES,我希望有人可以提供帮助。

系统

Ubuntu LAMP堆栈

亚马逊

  • 服务器名称: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

访问密钥

  • 公共: mypublickey
  • 私人: myprivatekey

我尝试使用phpmailer和Amazon SES SDK,并且ive尝试将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;收到此错误

我曾尝试使用其文档here中的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;

错误:

Parse error: syntax error, unexpected 'use' (T_USE) in /var/www/html/pages/register.php on line 130

文件夹结构

enter image description here

我没有安装作曲家。

我想要的是当用户通过SES SMTP注册时能够使用PHP发送电子邮件。

我必须以某种方式注册电子邮件,还是可以在域验证后通过任何电子邮件发送? 等等:noreply @ mywebsite.com,admin @ mywebsite.com和help@mywebsite.com?

0 个答案:

没有答案