Maison >développement back-end >tutoriel php >Pourquoi mon e-mail PHP envoyé via le serveur SMTP de Gmail échoue-t-il et comment puis-je le réparer à l'aide de la bibliothèque Pear Mail ?

Pourquoi mon e-mail PHP envoyé via le serveur SMTP de Gmail échoue-t-il et comment puis-je le réparer à l'aide de la bibliothèque Pear Mail ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-21 09:51:10907parcourir

Why is my PHP email sent via Gmail's SMTP server failing, and how can I fix it using the Pear Mail library?

Envoi d'e-mails avec le serveur SMTP de GMail à partir de PHP

Problème :
Lors de la tentative d'envoi d'un e-mail à l'aide SMTP de GMail à partir d'une page PHP, une erreur se produit, indiquant un échec d'authentification dans SMTP.

Solution :

Le code fourni utilise la bibliothèque Pear Mail, ce qui nécessite des ajustements pour le SMTP de GMail :

  1. Définissez le protocole sur SSL : Modifiez la ligne hôte pour inclure « ssl:// » avant 'smtp.gmail.com'.
  2. Utilisez le port 465 pour SSL : Remplacez le numéro de port par '465'.
  3. Assurez-vous que le nom d'utilisateur et le mot de passe sont corrects : Utilisez l'adresse e-mail complète comme nom d'utilisateur et le nom associé mot de passe.

Code mis à jour :

require_once "Mail.php";

$from = '<[email&#160;protected]>';
$to = '<[email&#160;protected]>';
$subject = 'Hi!';
$body = "Hi,\n\nHow are you?";

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);

$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => '465',
        'auth' => true,
        'username' => '[email&#160;protected]',
        'password' => 'passwordxxx'
    ));

$mail = $smtp->send($to, $headers, $body);

if (PEAR::isError($mail)) {
    echo('<p>' . $mail->getMessage() . '</p>');
} else {
    echo('<p>Message successfully sent!</p>');
}

En incorporant ces modifications, le code devrait désormais envoyer avec succès des e-mails via le serveur SMTP de GMail à partir de la page PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn