php - 在 PHP 中使用 PhpMailer 和 IMAP_SEARCH 进行回复跟踪
问题描述
我正在使用 PHPMailer 发送消息并使用 PHP imap_search 来搜索邮件。我的情况是——
- 用户从 PHPMailer tp 收件人发送电子邮件。(完毕)
- 使用电子邮件用户发送自定义消息 ID 说 (DONE)
- 收件人回复电子邮件。
在这里,我需要在用户的收件箱中搜索回复。我需要搜索用户是否收到电子邮件的任何回复。我不确定我该怎么做。
我正在使用 GMAIL SMTP 让用户发送电子邮件。
谢谢
解决方案
我们找到了这样的解决方法。为了在 PHPMailer 中发送电子邮件,我们在电子邮件中发送了一个唯一 ID,将其分配到自定义标头中。(您可以在邮件标题的收件人端验证此邮件 ID)。
$mid="<" . md5('MAXIFY'.(idate("U")-1000000000).uniqid()).'-sales@mydomain.com>';
$mail->MessageID = $mid;
$mail->addCustomHeader('In-Reply-To', $mid);
$mail->send();
现在要搜索电子邮件,我们使用了 imap_search。
$date="25-May-2018";
$emails = imap_search($inbox,'ON "'.$date.'"' );
foreach($emails as $email_number)
{
/* get information specific to this email */
$overview = imap_fetch_overview($inbox,$email_number,0);
print_r($overview);
}
概述提供了消息 ID 等的详细信息。从这里您可以跟踪这是否是回复。但是,在少数电子邮件中,我们发现消息 ID 不存在。因此,我们在我们的电子邮件正文中添加了一个唯一的 ID,并使用我们的 imap_search 搜索条件就像 -
$emails=imap_search($inbox,'TEXT "5b0b72417f673" ');
我没有找到任何其他方法来跟踪回复。
推荐阅读
- javascript - 如何在 SparkAR 中监控对象位置?
- python - Python Geopandas 模块对象不可调用
- javascript - javascript 中的 ["string"] 表示法是什么意思?
- django - 在模板中显示计算字段(Django)
- python - cv::contourArea 中的 OpenCV 断言失败错误
- python - 如果第 1 列不包含列表中的任何子字符串,则将已清理的第 2 列合并到新列中
- docker - 如何增加/检查 Docker 在 Linux 上的默认内存?
- java - 无法删除搁置文件的 Perforce CL
- c - 如何遍历字符串并检查它是否与C中同一字符串的当前字符匹配?
- java - Spring autherization http 安全重定向,会话问题