Codeigniter Email SMTP avec Amazon SES
Je pense que hier, Amazon a annoncé la prise en charge SMTP pour SE (Simple Email Service).
J'ai essayé d'envoyer un e-mail SMTP avec Codeigniter avec pas de chance.
J'ai vérifié l'expéditeur et tout semble bon:
$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('[email protected]', 'Test From');
$this->email->to('[email protected]', 'Test To');
$this->email->subject('Test');
$this->email->message('test');
$this->email->send();
J'ai essayé le suivant smtp_host:
- email-smtp.us-east-1.amazonaws.com
- tls://e-mail-smtp.us-east-1.amazonaws.com
- ssl://e-mail-smtp.us-east-1.amazonaws.com
Quand je l'écho de la print_debugger() j'obtiens:
220 email-smtp.amazonaws.com ESMTP SimpleEmailService-194655181
hello: 421 Timeout waiting for data from client.
Ces tests s'exécutent sur un mediatemple (gs) du serveur.
source d'informationauteur AFRC
Vous devez vous connecter pour publier un commentaire.
J'ai obtenu que le délai d'attente de message jusqu'à ce que j'ai ajouté la ligne:-
J'ai mon hôte défini comme
ssl://email-smtp.us-east-1.amazonaws.com
J'ai également nécessaire d'ajouter la ligne
à mon tableau de config
c'est pris en charge par CI 2.1.0 et plus
La configuration qui a fonctionné pour moi ressemble à ceci:
Le caractère de fin de ligne doit être mis à "\r\n", et placé dans le fichier de configuration, si elle est correctement définie comme "\r\n", pas "\r\n', comme indiqué ci-dessus.
Vous avez besoin de faire 3 choses de CI de travailler avec Amazon Simple Email Service (SES)
newline = \r\n
ou vous obtiendrez un délai d'attente.smtp_crypto
à quelque chose. (Nouvelle exigence)En outre, vous devez mettre en place DKIM pour votre "à partir de" adresse e-mail pour prévenir les e-mails de se mettre dans le dossier de spam. Il s'agit d'aller dans Amazon SES -> Gestion de l'Identité -> Adresses e-Mail -> DKIM, de frapper le bouton d'activation, et l'ajout de 3 entrées DNS pour votre site web DNS.
Pas besoin de faire quelque chose de spécial à l'ensemble de la SPF. L'enveloppe de domaine amazonses.com passe SPF.
Enfin, assurez-vous d'utiliser "répondre à" si vous souhaitez que les utilisateurs soient en mesure de répondre à un e-mail à une adresse différente de votre approuvé "à partir de" l'e-mail.
Exemple de code opérationnel: