View Categories

Codeigniter SMTP Email with Amazon SES

1 min read

Codeigniter SMTP Email with Amazon SES #

I tried to send SMTP email with Codeigniter with no luck.

I have a verified sender and everything looks good:

$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();
I tried the folowing 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
When i echo the print_debugger() i get:

220 email-smtp.amazonaws.com ESMTP SimpleEmailService-194655181
hello: 421 Timeout waiting for data from client.
These tests run on a mediatemple (gs) server.

Here is Some Solutions :

Solution 1: #

$obj = &get_instance();

$config[‘protocol’] = ‘smtp’;
$config[‘smtp_host’] = ’email-smtp.us-west-2.amazonaws.com’;
$config[‘smtp_user’] = ‘USER’;
$config[‘smtp_pass’] = ‘PASS’;
$config[‘smtp_port’] = ‘587’;
$config[‘newline’] = “\r\n”;
$config[‘smtp_crypto’] = ‘tls’;
$obj->email->initialize($config);

$obj->email->set_mailtype(‘html’);
// don’t html_escape email header variables
$obj->email->from(MV_FROM_EMAIL, $from_name);
$obj->email->reply_to($from_email, $from_name);
$obj->email->to($to);
$obj->email->subject($subject);
$obj->email->message($obj->load->view($path, html_escape($data), true));
$obj->email->send();

Solution 2: #

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;

}

Solution 3: #

$test_config[‘protocol’] = ‘smtp’;
$test_config[‘smtp_host’] = ‘ssl://email-smtp.us-east-1.amazonaws.com’;
$test_config[‘smtp_port’] = ‘465’;
$test_config[‘smtp_user’] = ‘XXXXXXXXXXXXXXXXXXX’;
$test_config[‘smtp_pass’] = ‘YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY’;
$test_config[‘newline’] = “\r\n”;

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

$this->email->from(‘from@test.com’, ‘From at Test.com’);
$this->email->to(‘To@Test.com’);

$this->email->subject(‘Email Test’);
$this->email->message(‘Testing the email class.’);

$this->email->send();

 

Powered by BetterDocs

Leave a Reply

Your email address will not be published. Required fields are marked *

Privacy Settings
We use cookies to enhance your experience while using our website. If you are using our Services via a browser you can restrict, block or remove cookies through your web browser settings. We also use content and scripts from third parties that may use tracking technologies. You can selectively provide your consent below to allow such third party embeds. For complete information about the cookies we use, data we collect and how we process them, please check our Privacy Policy
Youtube
Consent to display content from Youtube
Vimeo
Consent to display content from Vimeo
Google Maps
Consent to display content from Google
Spotify
Consent to display content from Spotify
Sound Cloud
Consent to display content from Sound