Quelles sont les opérations courantes d'envoi d'e-mails dans la programmation PHP ?

WBOY
Libérer: 2023-06-12 10:44:02
original
1772 Les gens l'ont consulté

En programmation PHP, les opérations d'envoi d'e-mails sont très courantes. Vous pouvez généralement utiliser l'envoi d'e-mails pour mettre en œuvre des notifications système, des abonnements par e-mail, des réinitialisations de mot de passe, des invitations à des événements et d'autres fonctions. Jetons un coup d'œil aux opérations courantes d'envoi d'e-mails dans la programmation PHP.

1. Utilisez la fonction mail() pour envoyer des e-mails

Le moyen le plus simple et le plus direct d'envoyer des e-mails en PHP est d'utiliser la fonction mail(). Cette fonction est une fonction fournie avec PHP et ne nécessite pas l'installation d'autres extensions. Ce qui suit est un exemple de code simple pour envoyer des e-mails à l'aide de la fonction mail() :

$to = '收件人邮箱';
$subject = '邮件主题';
$message = '邮件内容';
$headers = 'From: 发件人邮箱' . "
" .
           'Reply-To: 发件人邮箱' . "
" .
           'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
Copier après la connexion

$headers voici les informations d'en-tête de l'e-mail, et vous devez définir De, Répondre à et d'autres informations. Lorsque vous utilisez la fonction mail() pour envoyer des e-mails, vous devez faire attention aux points suivants :

  1. La variable $to doit être définie sur l'adresse e-mail de l'e-mail de réception
  2. From et Reply-To dans le $ ; la variable headers doit être définie sur l'adresse e-mail de l'expéditeur ;
  3. Si l'adresse de l'expéditeur et le serveur ne sont pas dans le même nom de domaine, elle sera interceptée par certains serveurs de messagerie ou considérée comme du spam
  4. Le processus d'envoi d'e-mails peut ; être lent. Si le temps d'attente est trop long, vous pouvez utiliser le multi-threading.
  5. Étant donné que la fonction mail() utilise la fonction d'envoi d'e-mails native du système, le processus d'envoi peut être considéré comme du spam ou bloqué par le pare-feu ; .

2. Utilisez le serveur SMTP pour envoyer des e-mails

L'utilisation du serveur SMTP pour envoyer des e-mails peut mieux éviter le problème d'être considéré comme du spam que d'utiliser la fonction mail(). Il existe actuellement d'excellentes bibliothèques PHP SMTP, telles que PHPMailer. Cette bibliothèque de classes a une forte personnalisation et une interface API conviviale, et prend en charge les méthodes d'envoi d'e-mails en texte brut, d'e-mails HTML, d'e-mails en pièce jointe, etc. du serveur SMTP. Voici un exemple de code pour envoyer des e-mails en texte brut à l'aide de PHPMailer :

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);
$mail->isSMTP();

try {
  $mail->SMTPDebug = 0;
  $mail->Host       = 'smtp.example.com';
  $mail->SMTPAuth   = true;
  $mail->Username   = '发件人邮箱';
  $mail->Password   = '发件人邮箱密码';
  $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
  $mail->Port       = 465;

  $mail->setFrom('发件人邮箱');
  $mail->addAddress('收件人邮箱');
  $mail->Subject = '邮件主题';
  $mail->Body = '邮件内容';

  $mail->send();

  echo '邮件发送成功';
} catch (Exception $e) {
  echo "邮件发送失败:{$mail->ErrorInfo}";
}
Copier après la connexion

Ce code est basé sur la bibliothèque de classes PHPMailer. Il peut être installé directement via Composer et peut être utilisé après avoir introduit les trois fichiers Exception, PHPMailer et SMTP. Il convient de noter que l'adresse e-mail de l'expéditeur doit ici être cohérente avec l'adresse de l'expéditeur fournie par le fournisseur de services SMTP, sinon le problème « échec de la vérification de l'expéditeur » se produira.

3. Utilisez un service de messagerie tiers pour envoyer des e-mails

Dans les applications de niveau entreprise ou qui nécessitent l'envoi d'un grand nombre d'e-mails, vous pouvez envisager d'utiliser un fournisseur de services de messagerie tiers, tel que SendGrid, Mailgun, etc. Ces fournisseurs de services se connectent généralement aux clients via des interfaces API, ce qui évite au client le processus d'établissement d'une connexion directe avec le serveur SMTP et lui permet de bénéficier de meilleurs services d'envoi d'e-mails. Voici un exemple de code pour envoyer des e-mails à l'aide de SendGrid :

$url = 'https://api.sendgrid.com/v3/mail/send';

$data = array(
    "personalizations" => array(
        array(
            "to" => array(
                 array(
                     "email" => "收件人邮箱"
                  )
            ),
            "subject" => "邮件主题"
        )
    ),
    "from" => array(
        "email" => "发件人邮箱"
    ),
    "content" => array(
        array(
            "type" => "text/plain",
            "value" => "邮件内容"
        )
    )
);

$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => array(
            'Content-Type: application/json',
            'Authorization: Bearer ' . 'SendGrid API KEY'
        ),
        'content' => json_encode($data),
    ),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);

if (in_array(substr($response['status'], 0, 1), array(
     '2', '3'
))) {
    echo '邮件发送成功';
} else {
    echo '邮件发送失败';
}
Copier après la connexion

Cet exemple de code utilise l'interface API fournie par SendGrid. Vous devez vous inscrire à l'avance sur le site officiel de SendGrid et obtenir la CLÉ API. Étant donné que SendGrid est un fournisseur de services payant, vous devez sélectionner le forfait et le volume d'envoi appropriés en fonction de votre situation commerciale avant de l'utiliser.

Résumé

Cet article présente les opérations courantes d'envoi d'e-mails dans la programmation PHP, notamment l'utilisation de la fonction mail(), l'utilisation du serveur SMTP pour envoyer des e-mails et l'utilisation de services de messagerie tiers pour envoyer des e-mails. Étant donné que les technologies et les stratégies liées à l'envoi d'e-mails évoluent rapidement, il est recommandé aux développeurs de choisir la méthode d'envoi d'e-mails qui leur convient le mieux en fonction des besoins spécifiques et des conditions expérimentales des applications réelles.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!