Maison  >  Article  >  développement back-end  >  Guide complet sur l'envoi de courrier via SMTP avec PHP

Guide complet sur l'envoi de courrier via SMTP avec PHP

WBOY
WBOYoriginal
2023-05-27 10:10:352769parcourir

Avec le développement d'Internet, le courrier électronique, en tant que moyen de communication important, est devenu un élément indispensable de la vie quotidienne des gens. L'envoi d'e-mails à partir de code est une tâche courante pour les développeurs Web. PHP fournit la fonction d'envoi d'e-mails via SMTP (Simple Mail Transfer Protocol), et cet article vous fournira un guide complet.

1. Introduction à SMTP

SMTP est un protocole standard pour envoyer et recevoir des emails vers un serveur ou un client. C'est un protocole de transfert de texte. Les serveurs SMTP sont généralement utilisés pour envoyer des e-mails, tandis que les serveurs POP (Post Office Protocol) ou IMAP (Internet Message Access Protocol) sont utilisés pour recevoir des e-mails.

La fonction principale de SMTP est de tenter de transmettre le courrier d'un serveur à l'autre jusqu'à ce que le courrier atteigne sa destination. Lorsqu'un client SMTP souhaite envoyer un courrier, il se connecte au serveur, envoie les données du courrier au serveur, et le serveur tente ensuite de transmettre le courrier au serveur suivant jusqu'à ce que le courrier atteigne le serveur SMTP du destinataire. Le serveur SMTP utilise le port numéro 25 pour la communication.

2. Fonction d'envoi d'e-mails PHP

Pour utiliser SMTP pour envoyer des e-mails en PHP, nous devons utiliser la fonction d'envoi d'e-mails intégrée de PHP. Ces fonctions sont :

  1. fonction mail()

La façon la plus simple d'envoyer des emails en PHP est d'utiliser la fonction mail(). Cette fonction envoie du courrier via le programme "sendmail" dans la configuration PHP. Cette fonction a les paramètres suivants :

  • $to - l'adresse email du destinataire
  • $subject - le sujet de l'e-mail
  • $ message - Texte de l'e-mail
  • $headers - En-têtes de l'e-mail

Exemple de code :

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";

mail($to, $subject, $message, $headers);
  1. smtp_mail() fonction # 🎜🎜#
smtp_mail() est une fonction PHP personnalisée qui peut envoyer des e-mails en utilisant le protocole SMTP. Cette fonction a les paramètres suivants :

    $to - l'adresse email du destinataire
  • $subject - le sujet de l'e-mail
  • $ message - Texte de l'e-mail
  • $headers - En-têtes de l'e-mail
  • $smtp_username - Nom d'utilisateur du serveur SMTP
  • $smtp_password - Mot de passe du serveur SMTP
  • $smtp_host - Nom d'hôte du serveur SMTP
  • $smtp_port - Numéro de port du serveur SMTP
Exemple de code :

$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a test email.";
$headers = "From: sender@example.com";
$smtp_username = "smtp_username";
$smtp_password = "smtp_password";
$smtp_host = "smtp.example.com";
$smtp_port = 587;

smtp_mail($to, $subject, $message, $headers, $smtp_username, $smtp_password, $smtp_host, $smtp_port);

3. Configurer le serveur SMTP

Avant d'utiliser SMTP pour envoyer des e-mails, vous devez configurer les paramètres du serveur SMTP. Nous devons connaître le nom d'hôte du serveur SMTP, le numéro de port, le nom d'utilisateur et le mot de passe ainsi que d'autres informations.

Le nom d'hôte du serveur SMTP est un nom de domaine ou une adresse IP fourni par le fournisseur de services de messagerie. Le numéro de port du serveur SMTP est généralement 25, mais il peut s'agir d'autres numéros de port. Si votre serveur SMTP nécessite une authentification, vous devrez vous authentifier à l'aide d'un nom d'utilisateur et d'un mot de passe. Si l'authentification n'est pas requise, elle peut rester vide.

4. Utilisez la bibliothèque PHPMailer pour envoyer des e-mails

PHPMailer est une bibliothèque PHP populaire pour l'envoi d'e-mails. Il possède de nombreuses fonctionnalités avancées telles que la prise en charge de l'authentification SMTP, des pièces jointes, du formatage HTML, CC et BCC, de l'importance et de la priorité, etc. Voici un exemple de code utilisant PHPMailer :

//引入PHPMailer库
require_once('PHPMailer/class.phpmailer.php');

//实例化PHPMailer类
$mail = new PHPMailer();

//设置SMTP服务器
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = 'ssl';
$mail->Host = 'smtp.example.com';
$mail->Port = 465;
$mail->Username = 'smtp_username';
$mail->Password = 'smtp_password';

//设置邮件头信息
$mail->From = 'sender@example.com';
$mail->AddAddress('recipient@example.com');
$mail->Subject = 'Test email';
$mail->Body = 'This is a test email message.';

//发送邮件
if(!$mail->Send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent.';
}

Dans ce code, nous instancions la classe PHPMailer et définissons les paramètres du serveur SMTP. Définissez ensuite les informations d’en-tête de l’e-mail et envoyez l’e-mail en appelant la méthode Send().

5. Résumé

Cet article vous fournit un guide sur la façon d'envoyer des e-mails via SMTP en utilisant PHP. Vous pouvez envoyer des e-mails à l'aide de la fonction mail() intégrée de PHP ou d'une fonction smtp_mail() personnalisée. Si vous avez besoin de fonctionnalités plus avancées telles que les pièces jointes, le formatage HTML, l'authentification SMTP, CC et BCC, etc., utilisez la bibliothèque PHPMailer. Quelle que soit la méthode que vous utilisez, vous devrez comprendre la configuration et l'authentification du serveur SMTP.

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