Maison >développement back-end >tutoriel php >Utiliser PHP pour envoyer des e-mails

Utiliser PHP pour envoyer des e-mails

PHPz
PHPzoriginal
2023-06-11 08:46:441766parcourir

Avec la popularité d'Internet et du courrier électronique, de plus en plus de personnes commencent à utiliser le courrier électronique comme principal outil de communication. PHP est un langage de programmation côté serveur populaire qui peut également être utilisé pour envoyer des e-mails. Dans cet article, nous expliquerons comment utiliser PHP pour envoyer des emails.

  1. Configurer le serveur SMTP

Tout d'abord, nous devons configurer le serveur SMTP. SMTP (Simple Mail Transfer Protocol) est le protocole standard pour la transmission d'e-mails. La plupart des fournisseurs de services de messagerie fournissent des informations sur la configuration du serveur SMTP. En PHP, vous devez utiliser un serveur SMTP pour envoyer des e-mails, nous devons donc configurer les informations de configuration du serveur SMTP dans le code, y compris l'adresse du serveur SMTP, le numéro de port, le nom d'utilisateur et le mot de passe, etc.

Voici un exemple d'utilisation du serveur SMTP Gmail :

<?php
// 配置SMTP服务器
$smtp_server = 'smtp.gmail.com';
$smtp_port = 587;
$smtp_username = '你的Gmail账号';
$smtp_password = '你的Gmail密码';

// 创建SMTP客户端
$smtp_client = new SMTPClient($smtp_server, $smtp_port, $smtp_username, $smtp_password);

// 发送邮件
$smtp_client->sendMail('发件人邮箱', '收件人邮箱', '邮件标题', '邮件内容');
?>
  1. Créer un client SMTP

En PHP, nous devons utiliser le client SMTP pour nous connecter au serveur SMTP et envoyer des e-mails. Voici un exemple de client SMTP :

class SMTPClient {
  private $smtp_server;
  private $smtp_port;
  private $smtp_username;
  private $smtp_password;
  private $smtp_conn;

  public function __construct($smtp_server, $smtp_port, $smtp_username, $smtp_password) {
    $this->smtp_server = $smtp_server;
    $this->smtp_port = $smtp_port;
    $this->smtp_username = $smtp_username;
    $this->smtp_password = $smtp_password;

    // 连接SMTP服务器
    $this->smtp_conn = fsockopen($this->smtp_server, $this->smtp_port, $errno, $errstr, 30);

    if (!$this->smtp_conn) {
      throw new Exception("无法连接SMTP服务器: $errstr ($errno)");
    }

    // 连接成功后发送命令
    $this->sendCommand('EHLO localhost', 250);
    $this->sendCommand("AUTH LOGIN", 334);
    $this->sendCommand(base64_encode($this->smtp_username), 334);
    $this->sendCommand(base64_encode($this->smtp_password), 235);
  }

  // 发送邮件函数
  public function sendMail($from, $to, $subject, $body) {
    // 发送邮件头部
    $this->sendCommand("MAIL FROM: <$from>", 250);
    $this->sendCommand("RCPT TO: <$to>", 250);
    $this->sendCommand("DATA", 354);

    // 发送邮件内容
    fputs($this->smtp_conn, "Subject: $subject
");
    fputs($this->smtp_conn, "From: $from
");
    fputs($this->smtp_conn, "To: $to
");
    fputs($this->smtp_conn, "
");
    fputs($this->smtp_conn, "$body
");
    fputs($this->smtp_conn, ".
");

    // 发送结束命令
    $this->sendCommand("QUIT", 221);
  }

  // 发送SMTP命令
  private function sendCommand($command, $expected_response) {
    fputs($this->smtp_conn, "$command
");

    // Read response
    while(true) {
      $response = fgets($this->smtp_conn, 4096);
      if(substr($response, 3, 1) == " ") { break; }
    }

    if((int)substr($response, 0, 3) !== $expected_response) {
      throw new Exception("SMTP命令错误: " . $response);
    }
  }

  public function __destruct() {
    fclose($this->smtp_conn);
  }
}
  1. Envoyer un e-mail

Envoyer des e-mails à l'aide d'un client SMTP est très simple. Il vous suffit d'appeler la fonction sendMail du client SMTP et de transmettre l'adresse e-mail de l'expéditeur, l'adresse e-mail du destinataire, le titre de l'e-mail et le contenu de l'e-mail.

$smtp_client->sendMail('发件人邮箱', '收件人邮箱', '邮件标题', '邮件内容');

Vous pouvez désormais utiliser PHP pour envoyer des e-mails. Bien sûr, il ne s'agit que d'un exemple simple, et une logique plus complexe peut être requise dans des applications réelles, comme l'ajout de pièces jointes, l'envoi d'e-mails HTML, etc.

Résumé

Dans cet article, nous avons présenté comment utiliser PHP pour envoyer des e-mails. Pour envoyer des e-mails à l'aide de PHP, nous devons d'abord configurer les informations du serveur SMTP, puis utiliser un client SMTP pour nous connecter au serveur SMTP et envoyer des e-mails. J'espère que cet article vous aidera à mieux comprendre les principes fondamentaux de l'envoi d'e-mails en 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