21

昨日、AmazonがSES(Simple Email Service)のSMTPサポートを発表したと思います。

運が悪かったので、CodeigniterでSMTPメールを送信しようとしました。

確認済みの送信者がいますが、すべてが良好に見えます。

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

$config = array(
    'protocol' => 'smtp',
    'smtp_host' => 'email-smtp.us-east-1.amazonaws.com',
    'smtp_user' => 'SMTP USERNAME',
    'smtp_pass' => 'SMTP PASSWORD',
    'smtp_port' => 465,
    'mailtype' => 'html'
);

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

$this->email->from('verified_email_address@something.com', 'Test From');
$this->email->to('email@example.com', 'Test To');
$this->email->subject('Test');
$this->email->message('test');

$this->email->send();

次のsmtp_hostを試しました。

  • email-smtp.us-east-1.amazonaws.com
  • tls://email-smtp.us-east-1.amazonaws.com
  • ssl://email-smtp.us-east-1.amazonaws.com

print_debugger()をエコーすると、次のようになります。

220 email-smtp.amazonaws.com ESMTP SimpleEmailService-194655181
hello: 421 Timeout waiting for data from client.

これらのテストは、mediatemple(gs)サーバーで実行されます。

4

5 に答える 5

30

行を追加するまで、タイムアウトメッセージが表示されました:-

$this->email->set_newline("\r\n");

ホストを次のように設定していますssl://email-smtp.us-east-1.amazonaws.com

于 2011-12-16T12:13:57.297 に答える
6
public function enviar_email($para, $assunto, $mensagem, $formato='html'){
            $this->CI->load->library('email');
            $config['mailtype']     = $formato;
            $config['useragent']    = 'Post Title';
            $config['protocol']     = 'smtp';
            $config['smtp_host']    = 'tls://email-smtp.us-east-1.amazonaws.com';
            $config['smtp_user']    = 'smtpuser';
            $config['smtp_pass']    = 'smtppass';
            $config['smtp_port']    = '465';
            $config['wordwrap']     = TRUE;
            $config['newline']      = "\r\n"; 

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

            $this->CI->email->from('Your Verified Sender Email', 'Post Title');
            $this->CI->email->to($para);
            $this->CI->email->subject($assunto);
            $this->CI->email->message($mensagem);


            if($this->CI->email->send()):
                    return TRUE;
            else:
                    $this->CI->email->print_debugger();
            endif;

    } 
于 2013-03-09T19:29:11.443 に答える
4

行も追加する必要がありました

$config['smtp_crypto']  = 'tls';

私の設定配列に

これはCI 2.1.0 以降でサポートされています

于 2014-01-14T20:26:44.570 に答える