【问题标题】:How to track emails sent via smtp with phpmailer?如何使用 phpmailer 跟踪通过 smtp 发送的电子邮件?
【发布时间】:2015-05-05 09:13:06
【问题描述】:

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

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

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

通过链接的响应将通过唯一的确认码发送到服务器。因此,表中的已发送记录将更新为 bool/tinyint 属性,以记录是否确认电子邮件中的详细信息。

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

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

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

但是由于错误而无法发送电子邮件的事件呢? 发生这种情况的示例:

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

我应该在哪里存储每封未发送电子邮件的错误信息? 这应该记录在数据库表中还是放在日志文件中? DB 在搜索和查看方面似乎更强大......

【问题讨论】:

    标签: php mysql database email smtp


    【解决方案1】:

    1.您想记录发送的电子邮件并通过验证邮件验证您的用户电子邮件 在您的数据库中制作以下表格

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

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

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      如果您使用 PHPMailer 通过 SMTP 服务(如 http://www.ultrasmtp.comhttp://sendgrid.comhttp://jangosmtp.com)中继您的邮件 - 任何这些服务都将跟踪成功/失败的投递和邮件的打开,并将这些数据记录在自己的您可以从中查看报告或搜索的数据库,还可以通过 API 或导出向您提供这些信息。

      【讨论】:

      • 嗯,是的,我正在考虑使用这些。但是它们是否可以用于非营销电子邮件(特别是可以用于报价请求/详细信息电子邮件?)。在这种情况下,我正在考虑从 Mandrill (mandrill.com) 开始,因为每月前 12k 封电子邮件是免费的
      • 可以用 Mandrill 做这个吗?
      • 另外,我想使用自己的域 SMTP 凭证而不是电子邮件云服务的凭证 - 这可能吗?
      • 这行得通吗? help.mandrill.com/entries/…
      猜你喜欢
      • 2011-04-06
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多