发送电子邮件时保持登录到SMTP服务器


Remain logged in to SMTP server while sending out emails

我有一个网站,我为用户提供订阅时事通讯的机会。

一旦用户输入他们的电子邮件,我想向他们发送一封确认电子邮件,其中包含带有令牌的链接。像往常一样,一旦用户点击链接,他们的电子邮件就会被确认并添加到我的订阅者的数据库中。

我已经使用以下步骤成功地通过PHPMailer实现了这一点:

  1. 在我的主机上创建一个电子邮件帐户(例如,地址 noreply@myhost.com (
  2. 在我的 PHP 代码上,当我想从该电子邮件地址发送电子邮件时,请使用"localhost"作为域名以及我在步骤 1 中创建电子邮件帐户时使用的用户名和密码进行 SMTP 登录。
  3. 发送电子邮件。

当用户单击"订阅我们的时事通讯"按钮时,他会看到一个加载图标,并收到一条消息,告诉他检查他的收件箱。步骤 2(SMTP 登录(从 PHP 执行所需的时间最长。

有没有办法保持登录SMTP帐户,并在用户请求订阅时事通讯时发送电子邮件,以减少加载时间(可能还有服务器负载(?

听起来你矫枉过正。无需每次登录。使用 PHPMailer 发送电子邮件所需的只是

$mail = new PHPMailer;
$mail->From = 'from@example.com';
$mail->FromName = 'Mailer';
$mail->addAddress('ellen@example.com');
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';

if(!$mail->send()) {
   echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}