2

我正在使用以下代码使用我的亚马逊 ses 服务凭证发送电子邮件。但是消息没有得到传递......

这是我的代码:

$this->load->library('email');

$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com',
    'smtp_user' => '******',
    'smtp_pass' => '*********',
    'smtp_port' => 25
);

$this->email->initialize($config);

$this->email->from('sender08@example.com');
$this->email->to('reciever@example.com');

$this->email->subject('Test');
$this->email->message('test');
$this->email->set_newline("\r\n");
$this->email->send();
$this->email->print_debugger();

我该如何解决?

4

3 回答 3

2

为了让它工作,我在我的 config/email.php 文件中添加了以下几行

$config['newline']      = "\r\n";
$config['smtp_crypto']  = 'tls';

注意:您需要CI 2.1.0 或更高版本才能使 smtp_crypto 指令正常工作

我希望它也可以通过将其添加到您的配置数组来工作:

$config = array(
    'protocol'  => 'smtp',
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com',
    'smtp_user' => '******',
    'smtp_pass' => '*********',
    'smtp_port' => 25,
    'newline'   => "\r\n",
    'smtp_crypto' => 'tls'
);
于 2014-01-14T20:22:02.613 回答
0

只需将 email-smtp.us-east-1.amazonaws.com 更改为 ssl://email-smtp.us-east-1.amazonaws.com

于 2013-01-07T09:12:31.850 回答
0

我找到了解决方案:如果您使用的是 TLS

然后代替这个 email-smtp.us-east-1.amazonaws.com

使用 tls://email-smtp.us-east-1.amazonaws.com

并添加此 $config['newline'] = "\r\n"; 您在哪里定义了 SMTP 配置。

我面临通过更改这两个解决的相同问题。

我希望这些建议也对你们有所帮助。

于 2016-04-07T07:44:51.100 回答