Maison  >  Article  >  développement back-end  >  Méthodes d'envoi d'e-mails PHP et résumé des questions fréquemment posées

Méthodes d'envoi d'e-mails PHP et résumé des questions fréquemment posées

WBOY
WBOYoriginal
2023-06-08 22:57:051933parcourir

À l'ère d'Internet, le courrier électronique est devenu un élément indispensable de la vie et du travail des gens. PHP est un langage très utilisé dans le domaine du développement web, et l’envoi d’emails est également indispensable dans les applications web. Cet article présentera en détail le contenu pertinent et les problèmes courants liés à l'envoi d'e-mails PHP.

1. Comment envoyer des e-mails PHP

  1. Bibliothèque PHPmailer

PHPmailer est une puissante bibliothèque d'envoi d'e-mails PHP qui peut facilement envoyer des e-mails au format HTML et au format texte brut. L'utilisation de PHPmailer peut éviter le problème d'échec de l'envoi d'e-mails causé par les limitations de la fonction d'envoi d'e-mails native de PHP.

Pour utiliser la bibliothèque PHPmailer pour envoyer des e-mails, vous devez d'abord télécharger le package de code source de la bibliothèque PHPmailer et l'extraire dans le répertoire racine du site Web. Ensuite, incluez le fichier de bibliothèque, instanciez l'objet PHPmailer, définissez les paramètres de courrier électronique et enfin appelez la méthode send().

Ce qui suit est un exemple de code pour envoyer des e-mails à l'aide de la bibliothèque PHPmailer :

require_once 'phpmailer/PHPMailerAutoload.php'; //包含类库文件
$mail = new PHPMailer;
$mail->isSMTP(); //使用SMTP方式发送邮件
$mail->SMTPAuth = true; //开启SMTP认证
$mail->Host = 'smtp.gmail.com'; //SMTP服务器地址,例如:smtp.gmail.com
$mail->Username = 'username@gmail.com'; //SMTP服务器用户名,例如:username@gmail.com
$mail->Password = 'password'; //SMTP服务器密码,例如:password
$mail->SMTPSecure = 'ssl'; //开启SMTP使用的SSL协议,一般使用ssl或tls
$mail->Port = 465; //SMTP服务器端口号,例如:465
$mail->setFrom('from@example.com', 'Sender'); //设置发件人邮箱地址和名称
$mail->addAddress('to@example.com', 'Recipient'); //设置收件人邮箱地址和名称
$mail->isHTML(true); //设置邮件正文为HTML格式
$mail->Subject = 'Subject'; //设置邮件标题
$mail->Body = 'Mail Content'; //设置邮件正文
$mail->AltBody = 'Text Content'; //设置纯文本格式的邮件正文
if(!$mail->send()) {
    echo 'Mail could not be sent. Error: ' . $mail->ErrorInfo;
} else {
    echo 'Mail has been sent.';
}
  1. Fonction intégrée PHP mail()

La fonction intégrée PHP mail() est le moyen le plus simple et le plus direct d'envoyer des e-mails. Pour envoyer un email en utilisant cette méthode, transmettez simplement les paramètres de l'e-mail lors de l'appel de la fonction. Cependant, en raison des limitations de PHP, la fonction mail() peut échouer. Par exemple, l'e-mail peut être automatiquement considéré comme spam par le serveur et rejeté.

Ce qui suit est un exemple de code pour envoyer des e-mails à l'aide de la fonction mail() intégrée de PHP :

$to = 'to@example.com'; //收件人邮箱地址
$subject = 'Subject'; //邮件标题
$message = 'Mail Content'; //邮件正文
$from = 'Sender <from@example.com>'; //发件人名称和邮箱地址
$headers = "From: " . $from . "
"; //设置邮件头部信息,包括发件人姓名和邮箱地址
$headers .= "Reply-To: ". $from . "
"; //设置收件人回复的邮箱地址
$headers .= "MIME-Version: 1.0
"; //设置邮件头部为MIME类型
$headers .= "Content-type:text/html;charset=UTF-8
"; //设置邮件正文为HTML类型
if(mail($to, $subject, $message, $headers)){ //调用mail()发送邮件
    echo 'Mail has been sent.';
}else{
    echo 'Mail could not be sent.';
}

2. Problèmes courants et solutions pour l'envoi d'e-mails PHP

  1. E-mails chinois tronqués

Lorsque l'e-mail contient des caractères chinois , le contenu de l'e-mail peut contenir des caractères tronqués. À ce stade, vous pouvez définir la méthode de codage de l'e-mail afin que l'e-mail puisse afficher correctement le chinois. Vous pouvez ajouter le contenu suivant dans les informations d'en-tête de l'e-mail :

$headers .= "Content-Type:text/html;charset=UTF-8
"; //设置邮件正文编码为UTF-8
$headers .= "Content-Transfer-Encoding: base64
"; //设置邮件正文编码方式为base64
  1. Échec de l'envoi de l'e-mail

Échec de l'envoi de l'e-mail pour les raisons suivantes : paramètre de port de serveur de messagerie incorrect, compte de messagerie ou code d'autorisation incorrect, etc. . Vous pouvez essayer d'utiliser d'autres comptes de messagerie ou modifier des paramètres tels que l'adresse et le port du serveur de messagerie pour résoudre le problème d'échec de l'envoi d'e-mails.

  1. L'e-mail est identifié comme spam

Lorsque le contenu de l'e-mail ou les informations d'en-tête contiennent certains mots-clés ou symboles, l'e-mail peut être automatiquement reconnu comme spam par le serveur et renvoyé. Vous pouvez essayer de supprimer les mots ou symboles sensibles du contenu de l'e-mail, ou ajouter l'adresse d'envoi de l'e-mail à la liste blanche de votre boîte aux lettres.

  1. Styles perdus

Lors de l'envoi d'e-mails au format HTML, les styles du corps de l'e-mail peuvent être perdus dans certaines boîtes aux lettres, provoquant un affichage anormal des e-mails. À l’heure actuelle, vous pouvez essayer d’utiliser des styles en ligne ou des feuilles de style jointes pour styliser le corps de l’e-mail.

  1. La capacité de la boîte aux lettres n'est pas suffisante

Lorsque la capacité de la boîte aux lettres est pleine et qu'aucun nouveau courrier ne peut être reçu, l'envoi du courrier échouera également. Vous pouvez résoudre ce problème en supprimant les e-mails inutiles ou en achetant une boîte aux lettres plus grande.

Résumé :

L'envoi d'e-mails peut être considéré comme l'une des opérations régulières dans les applications Web. Cet article présente les méthodes courantes d'envoi d'e-mails et leur utilisation en PHP, et résout également les problèmes courants d'envoi d'e-mails. J'espère que cet article pourra vous aider à mieux mettre en œuvre la fonction d'envoi d'e-mails.

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