2013-04-06 112 views
5

是有人知道我的项目为以下问题怎么知道邮件发送和使用SMTP发送邮件时,用户阅读,PHPMailer的

任何解决方案,我用的SMTP和PHP邮件和Gmail脚本发送邮件至客户端。所以当我发送邮件gmail发送邮件给特定的客户端。为此,我传递了有效的gmail登录名和用户名。所有邮件都正确发送。但有时可能会发生某些客户端未收到邮件,并且当时我无法获取或追踪任何错误。所以我有办法,当我发送邮件给客户,当客户得到它,并在那个时候阅读它,我有任何形式的确认。

如有任何人有任何想法,帮助我。

+0

没有使这个太复杂,你可以注册像mailgun一个服务,然后跟踪或接收,打开或反弹是很好的管理。 – Barry 2016-04-04 07:28:00

回答

0

您可以随时添加回复邮件地址将照顾,如果有任何错误,所以你会得到回复电子邮件,并且如果它的阅读,包括图片(1个像素会做的空白图片),并添加代码那张照片就像,你可以看到图像收到或收到了多少点击。

1
<?php 
/** 
* Simple example script using PHPMailer with exceptions enabled 
* @package phpmailer 
* @version $Id$ 
*/ 

require ('../class.phpmailer.php'); 

try { 
     $mail = new PHPMailer(true); //New instance, with exceptions enabled 

     $body    = "Please return read receipt to me."; 
     $body    = preg_replace('/\\\\/','', $body); //Strip backslashes 

     $mail->IsSMTP();       // tell the class to use SMTP 
     $mail->SMTPAuth = true;     // enable SMTP authentication 
     $mail->Port  = 25;     // set the SMTP server port 
     $mail->Host  = "SMTP SERVER IP/DOMAIN"; // SMTP server 
     $mail->Username = "EMAIL USER ACCOUNT";  // SMTP server username 
     $mail->Password = "EMAIL USER PASSWORD";   // SMTP server password 

     $mail->IsSendmail(); // tell the class to use Sendmail 

     $mail->AddReplyTo("[email protected]","SOMEONE"); 

     $mail->From  = "[email protected]"; 
     $mail->FromName = "SOMEONE"; 

     $to = "[email protected]"; 

     $mail->AddAddress($to); 

     $mail->Subject = "First PHPMailer Message[Test Read Receipt]"; 

     $mail->ConfirmReadingTo = "[email protected]"; //this is the command to request for read receipt. The read receipt email will send to the email address. 

     $mail->AltBody = "Please return read receipt to me."; // optional, comment out and test 
     $mail->WordWrap = 80; // set word wrap 

     $mail->MsgHTML($body); 

     $mail->IsHTML(true); // send as HTML 

     $mail->Send(); 
     echo 'Message has been sent.'; 
} catch (phpmailerException $e) { 
     echo $e->errorMessage(); 
} 
?> 

一些修改需要在上面的脚本中完成。

  1. 配置SMTP邮件服务器。

  2. 设置正确的FROM & FROM名称([email protected],某人)

  3. 设置正确的解决

from

  1. Delivery reports and read receipts in PHP mail
+0

什么样的SMTP邮件服务器更改需要。 – 2013-04-06 07:06:37

+0

SMTP邮件服务器更改?在上面的代码中添加SMTP细节? – 2013-04-06 08:05:26

0

你可以用两种不同的方式检查事情,比如使用标题“Disposition-Notification-To”给你的邮件功能,它不会在所有情况下工作,因为大多数人选择不发送阅读收据。如果您可以从服务器上影响是否发生这种情况,垃圾邮件发送者可以很容易地识别活动和不活动的电子邮件地址。 您可以设置标题像

$email_header .= "Disposition-Notification-To: $from"; 
$email_header .= "X-Confirm-Reading-To: $from"; 

现在来检查的另一种方法是通过将图像,你可以添加脚本到图像的onload事件,该脚本将通知发送到您的系统,它的xxx用户已经阅读邮件,这样你就可以跟踪邮件的发送状态。

事实上,我想不出有什么方法可以确认它已经交付,而且还没有检查它是否被读取,要么通过包含从您的服务器请求并记录为已被访问的映像,用户必须访问以查看消息的完整内容。

也不保证(不是所有的电子邮件客户端将显示图像或使用HTML),而不是所有的“传递”的消息将被读取。

虽然更多信息https://en.wikipedia.org/wiki/Email_tracking

+0

$ mail-> ConfirmReadingTo =“[email protected]”;将此行添加到我的代码中,但仍然没有得到任何确认。我还缺少什么样的变化。如果有人知道请帮助我。 – 2013-04-06 07:12:29

+0

@JigarOza:你可以在这里分享你的代码,我会让你的代码为你工作,因为没有检查代码,我不知道你为什么没有得到有关邮件的确认。 – 2013-04-06 08:29:31

+0

@ Yuvraj @ JigarOza在他的回答中表示,发送阅读收据由用户决定,大多数用户选择不接受。我知道我很少把它们送回来。这可能是你没有得到确认的原因。通过发送电子邮件给自己进行测试。 – 2013-08-23 11:10:17