4 votes

Comment valider les informations d'identification SMTP avant d'envoyer un courriel en PHP ?

Comme il est si difficile de trouver une réponse, je pense que c'est peut-être impossible. Si c'est le cas, j'aimerais avoir la confirmation que c'est impossible.

7voto

caiosm1005 Points 571

Il existe un moyen très simple de le faire en utilisant des versions récentes de PHPMailer .

require_once 'phpmailer/class.phpmailer.php';
require_once 'phpmailer/class.smtp.php';

$mail = new PHPMailer(true);
$mail->SMTPAuth = true;
$mail->Username = 'email@example.com';
$mail->Password = 'my_awesome_password';
$mail->Host = 'smtp.example.com';
$mail->Port = 465;

// This function returns TRUE if authentication
// was successful, or throws an exception otherwise
$validCredentials = $mail->SmtpConnect();

Vous devrez peut-être modifier le numéro de port et activer SSL en fonction du service SMTP ciblé. Gmail, par exemple, nécessite une connexion SSL.

Pour activer le SSL, ajoutez $mail->SMTPSecure = 'ssl';


Avis : PHPMailer rejette les exceptions en cas d'échec. Une incompatibilité entre le nom d'utilisateur et le mot de passe, par exemple, peut déclencher une exception. Pour éviter que les messages d'erreur ne s'affichent partout sur votre page, intégrez la fonction dans un bloc try/catch.

$validCredentials = false;

try {
    $validCredentials = $mail->SmtpConnect();
}
catch(Exception $error) { /* Error handling ... */ }

1voto

Eric J. Points 73338

Ce n'est pas impossible.

Vous pouvez programmer vous-même l'interaction SMTP et vérifier la confirmation dans le protocole SMTP que les informations d'identification ont été acceptées. Pour cette approche, vous devrez établir une communication au niveau des sockets avec le serveur SMTP (par exemple, en utilisant le service [PHP Sockets]). 1 ).

Pour apprendre comment fonctionne le protocole SMTP, essayez de le faire une fois à la main avec Telnet.

http://technet.microsoft.com/en-us/library/aa995718(v=exchg.65).aspx

0voto

benedict_w Points 1652

Le PHP courrier électronique ne prend pas en charge l'authentification SMTP.

Vous pouvez envisager d'utiliser une bibliothèque tierce, par exemple.

http://swiftmailer.org/

http://pear.php.net/package/Mail

ou peut-être que vous pourriez essayer le script aquí

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X