Utilisation de PHPMailer et Amazon SES
Je suis en utilisant Amazon SES. Je suis en train d'envoyer un e-mail à partir de mon PHP script à l'aide de PHPMailer.
J'ai déjà vérifié deux e-mail id et essayer d'envoyer du courrier à partir et à ce mail id. Mais Il génère l'erreur suivante.
ERREUR
SERVER -> CLIENT: 220 email-smtp.amazonaws.com ESMTP SimpleEmailService-693939519 QEPGeLndQQq5vJ53VMXU
CLIENT -> SERVER: EHLO localhost
SERVER -> CLIENT: 250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250- STARTTLS250-AUTH PLAIN LOGIN250 Ok
CLIENT -> SERVER: STARTTLS
SERVER -> CLIENT: 220 Ready to start TLS
CLIENT -> SERVER: EHLO localhost
SERVER -> CLIENT: 250-email-smtp.amazonaws.com250-8BITMIME250-SIZE 10485760250-STARTTLS250-AUTH PLAIN LOGIN250 Ok
CLIENT -> SERVER: AUTH LOGIN
SMTP NOTICE: EOF caught while checking if connected
SMTP connect() failed.
Mailer Error: SMTP connect() failed.
Ce qui suit est mon Script PHP:
<?php
//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
date_default_timezone_set('Etc/UTC');
require 'phpmailer/PHPMailerAutoload.php';
//Create a new PHPMailer instance
$mail = new PHPMailer();
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Enable SMTP debugging
$mail->SMTPDebug = 2;
//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';
//Set the hostname of the mail server
$mail->Host = 'email-smtp.us-east-1.amazonaws.com';
//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
//I tried PORT 25, 465 too
$mail->Port = 587;
//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';
//Whether to use SMTP authentication
$mail->SMTPAuth = true;
//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "SES Secret ID";
//Password to use for SMTP authentication
$mail->Password = "SES Secret Key";
//Set who the message is to be sent from
$mail->setFrom('[email protected]', 'sender');
//Set who the message is to be sent to
$mail->addAddress('[email protected]', 'receiver');
//Set the subject line
$mail->Subject = 'PHPMailer GMail SMTP test';
$mail->Body = 'This is a plain-text message body';
//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
?>
J'ai essayé beaucoup de solutions que j'ai trouvées sur internet, en particulier stackoverflow.
Rien ne fonctionne !!
Pourquoi êtes-vous à l'aide de PHPMailer quand Amazon propose un SDK PHP? docs.aws.amazon.com/aws-sdk-php/guide/latest
Merci pour me rappeler de SDK PHP..!! Je L'Ai Eu !! Merci !!
Merci pour me rappeler de SDK PHP..!! Je L'Ai Eu !! Merci !!
OriginalL'auteur BBHeeMAA | 2014-05-06
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à le faire fonctionner.
Pour créer des informations d'identification de visiter ce lien: https://console.aws.amazon.com/ses/home?region=us-east-1#smtp-settings:
Pour envoyer des e-mail, envoi d'email, l'email que vous recevrez devront nécessairement être enregistré et vérifié par amazon. (https://console.aws.amazon.com/ses/home?region=us-east-1#verified-senders-mail🙂
Toutes les questions que vous pouvez me trouver.
J'espère que j'ai aidé
OriginalL'auteur Victor Gomes
J'ai eu le même problème, je n'ai pu le faire fonctionner quand j'ai changé de nom d'hôte pour commencer avec ssl://. Donc cela fonctionne:
$mail->SMTPDebug = 3; //Activer la sortie de débogage
Cela fonctionne, assurez-vous que votre port 443 et 'tls'.
OriginalL'auteur leon
Pour envoyer vos e-mails avec PHPMailer + AWS SES, j'ai eu à utiliser ces paramètres:
Un pas de plus, j'ai étendu la classe PHPMailer:
un. De partager facilement les valeurs par défaut tout au long de ma base de code; et
b. La distinction entre le développement et la production.
Il ressemble à ceci:
J'espère que cette aide.
OriginalL'auteur Fabien Snauwaert
Ci-dessous l'entrée m'a aidé à résoudre le problème j'ai été confronté à la non-livraison de mes e-mails. Alors que j'avais toutes les autres configurations de fait, mais ne pouvait pas comprendre pourquoi ça ne fonctionnait pas (pas un développeur PHP et donc pas facile à comprendre).
OriginalL'auteur Anil
Il suffit d'augmenter votre envoi de courrier limite de quota sur AWS SES
J'ai eu le même problème avec AWS ec2, puis par la recherche de solution, j'ai eu l'AWS SES pour envoyer des mails si récepteurs est également vérifié si vous êtes dans le sandbox amazon.
Si vous souhaitez envoyer du courrier à un autre e-mail de l'id( qui n'est pas vérifiée ), alors vous devez augmenter votre limite d'envoi des quotas. il suffit de suivre les étapes indiquées dans l'URL
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/submit-extended-access-request.html
OriginalL'auteur Akash Ahire