📅  最后修改于: 2023-12-03 15:18:32.680000             🧑  作者: Mango
在Web应用程序开发上,电子邮件是十分常见的功能。作为一名程序员,了解如何使用PHP发送电子邮件是必须的技能之一。本文将教你如何使用PHP发送电子邮件,包括如何通过SMTP服务器发送电子邮件。
在这之前,你需要满足以下条件:
PHP提供了一个mail()函数,可以简单地将电子邮件发送到指定的收件人。下面是一个示例:
$to = 'receiver@example.com';
$subject = 'Test email';
$message = 'Hello! This is a test email.';
$headers = 'From: sender@example.com' . "\r\n" .
'Reply-To: sender@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
上面的示例中,我们将电子邮件发送给receiver@example.com
,主题为Test email
,内容为Hello! This is a test email.
。邮件的发送者是sender@example.com
。
如果你需要将电子邮件发送给多个收件人、抄送和密送,则可以使用收件人、抄送和密送头。示例如下:
$to = 'receiver1@example.com, receiver2@example.com';
$cc = 'cc1@example.com, cc2@example.com';
$bcc = 'bcc1@example.com, bcc2@example.com';
$subject = 'Test email';
$message = 'Hello! This is a test email.';
$headers = 'From: sender@example.com' . "\r\n" .
'Reply-To: sender@example.com' . "\r\n" .
'Cc: ' . $cc . "\r\n" .
'Bcc: ' . $bcc . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
上面的示例中,我们将电子邮件发送给receiver1@example.com
和receiver2@example.com
。同时,我们将抄送邮件发送给cc1@example.com
和cc2@example.com
,并将密送邮件发送给bcc1@example.com
和bcc2@example.com
。
虽然mail()函数可以方便地发送电子邮件,但是它有一个弱点:如果你的邮件服务器在黑名单中,或者邮件服务被识别为垃圾邮件,则你的邮件可能会被拒绝或被标记为垃圾邮件。此时,可以使用SMTP服务器来发送邮件。
PHPMailer是一个流行的PHP库,可以帮助我们方便地使用SMTP服务器发送电子邮件。下面是一个示例:
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// composer自动加载PHPMailer库
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// SMTP服务器设置
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'sender@example.com';
$mail->Password = 'password';
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
// 发件人、收件人信息
$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('receiver@example.com', 'Receiver Name');
// 发送邮件
$mail->isHTML(false);
$mail->Subject = 'Test email';
$mail->Body = 'Hello! This is a test email.';
$mail->send();
echo 'Message sent!';
} catch (Exception $e) {
echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
上面的示例中,我们使用PHPMailer库来发送邮件。我们需要设置SMTP服务器的信息、发件人、收件人信息,以及邮件的主题和内容。在上面的例子中,我们使用了TLS加密来保护邮件传输的安全性。
以上是使用PHP发送电子邮件的基本知识。你可以使用PHP自带的mail()函数来发送电子邮件,也可以使用PHPMailer库来使用SMTP服务器发送邮件。无论哪种方式,记得保持简洁,避免成为垃圾邮件。