【问题标题】:How to configure CakePHP 3.x to use Amazon SES SMTP to send out emails?如何配置 CakePHP 3.x 以使用 Amazon SES SMTP 发送电子邮件?
【发布时间】:2016-02-29 12:04:22
【问题描述】:

我已在 AWS SES 中成功创建了我的 SMTP 凭证。

我解除了限制。

我已使用command line 测试我的凭据是否正常。

他们是。

我正在使用 CakePHP 3.2 但仍然无法发送我的电子邮件。

我使用的地区是美国西俄勒冈州。主持人是email-smtp.us-west-2.amazonaws.com

【问题讨论】:

    标签: php email amazon-web-services smtp cakephp-3.0


    【解决方案1】:

    如何通过命令行测试凭据是否正常

    1. 打开您的服务器终端并输入echo -n "YOUR SMTP USERNAME" | base64
    2. 将输出复制粘贴到某处。你会需要它。输出应以= 结尾
    3. YOUR SMTP PASSWORD 重复步骤 1 和 2
    4. 将以下内容复制粘贴到文本文件中,但替换为您认为合适的 <whatever>

    像这样:

    AFTER 220 .... PASTE THE LINE BELOW:
    EHLO <example.com>
    
    AFTER 250 Ok PASTE THE LINE BELOW:
    AUTH LOGIN
    
    AFTER 334 VXNlcm5hbWU6:
    <YOUR SMTP USERNAME encoded as base64 from step 1>
    
    AFTER 334 UGFzc3dvcmQ6:
    <YOUR SMTP PASSWORD encoded as base64 from step 3>
    
    AFTER 235 Authentication successful.
    MAIL FROM:<yourverifiedemail@example.com>
    
    AFTER 250 Ok
    RCPT TO:<yourverifiedemail@example.com>
    
    AFTER 250 Ok
    DATA
    
    AFTER 354 End data with <CR><LF>.<CR><LF>    
    Subject:Hello from Amazon SES!
    
    This email was sent using the Amazon SES SMTP interface.
    .
    
    1. 在终端输入openssl s_client -crlf -quiet -connect email-smtp.us-west-2.amazonaws.com:465

    2. 按照文本文件中的说明进行操作。

    一旦确定凭据是好的,现在配置你的 cakephp 3.x

    配置 Cake 3.x

    • 打开你的config/app.php

    • 找到EmailTransport并在默认值下添加一个新的传输

    像这样:

    'EmailTransport' => [
        'default' => [
            'className' => 'Mail',
            // The following keys are used in SMTP transports
            'host' => 'localhost',
            'port' => 25,
            'timeout' => 30,
            'username' => 'user',
            'password' => 'secret',
            'client' => null,
            'tls' => null,
        ],
        // START of what you need to add!!
        'AWS_SES' =>[
            'className' => 'Smtp', 
            'host' => 'email-smtp.us-west-2.amazonaws.com', 
            'port' => 587, // this is very important to be 587!! 
            'timeout' => 30,
            'username' => 'YOUR SMTP USERNAME',
            'password' => 'YOUR SMTP PASSWORD',
            'tls' => true, // this is also very important!!
        ]
        // END of what you need to add!!
    ],
    
    • 现在在 app.php 中查找 Email 并在默认值下方添加一个新配置文件

    像这样:

    'Email' => [
        'default' => [
            'transport' => 'default',
            'from' => 'you@localhost',
            //'charset' => 'utf-8',
            //'headerCharset' => 'utf-8',
        ],
    // START of what you need to add!
        'production' => [
            'transport' => 'AWS_SES',
            //'log' => true,
        ]
    // END of what you need to add!
    ],
    
    • 这就是配置的全部内容!
    • 只需在您想要的适当位置致电$email = new Email('production');

    【讨论】:

      猜你喜欢
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多