如何使用 phpmailer 跟踪通过 smtp 发送的电子邮件?

How to track emails sent via smtp with phpmailer?

我正在正确使用 PHPMailer class 将电子邮件发送到从数据库中检索到的多个电子邮件地址。

但是我是否应该将已发送和未发送的电子邮件及其原因存储在数据库中 table?

我想将已发送的电子邮件存储在数据库中 table。因为每封发送的邮件都可以通过点击邮件上带有确认码的 link 来确认。我想记录这个回复。

通过 link 的响应被发送到带有唯一确认代码的服务器。因此,table 中的已发送记录将使用 bool/tinyint 属性进行更新,以记录是否确认了电子邮件中的详细信息。

我可以通过以下方式将电子邮件(通过 smtp 和 phpmailer 发送)存储在电子邮件帐户的已发送文件夹中: Sent mails with phpmailer don't go to "Sent" IMAP folder ? 这样至少可以访问电子邮件内容,因为我不想将这些详细信息存储在 DB

在数据库中记录发送的电子邮件是否更好?

要跟踪退回的电子邮件,有以下解决方案: Track emails sent by SMTP with PHP

但是由于错误而没有发送电子邮件的事件怎么办? 发生这种情况的示例:

if(!$mail->Send())
{
   echo "Mailer Error: " . $mail->ErrorInfo;
}

我应该在哪里存储每封未发送电子邮件的错误信息? 这应该记录在 DB table 中还是放在日志文件中? DB似乎更适合搜索和查看....

如果您使用 PHPMailer 通过 http://www.ultrasmtp.com, http://sendgrid.com, or http://jangosmtp.com 等 SMTP 服务中继您的邮件 - 任何这些服务都会跟踪 successful/failed 邮件的发送和打开,并将此数据记录在它们自己的数据库中您可以查看报告或搜索,还可以通过 API 或导出方式向您提供此信息。

1.您想记录外发电子邮件并通过验证邮件验证您的用户电子邮件 在您的数据库中进行以下 tables

  1. 现在在PHP中生成一个随机码并存储在users->verification_code

  2. 将相同的代码发送给您的用户,同时在 email_log 中插入电子邮件详细信息。

  3. 当用户在他的收件箱中点击您的验证 link 时,将其与根据他在用户中的数据存储的验证进行交叉检查 table 如果它正确,则通过更改授予他访问权限验证为真。

希望这对您有所帮助。