>  기사  >  백엔드 개발  >  PHP가 수신자가 이메일을 읽었는지 여부를 확인하는 방법에 대한 자세한 예

PHP가 수신자가 이메일을 읽었는지 여부를 확인하는 방법에 대한 자세한 예

伊谢尔伦
伊谢尔伦원래의
2017-06-27 10:45:551478검색

phpmailer를 사용하여 이메일을 보낸 후, 많은 사람들이 상대방이 이메일을 읽었는지 알고 싶어합니까? 일반적으로 우리는 이것을 알 수 없는데, 방법이 없을까요?

이 문제에 대한 간단한 해결책이 있습니다. 이메일 내용을 HTML 형식으로 보낼 수 있고 내용에 그림을 삽입할 수 있으므로 핵심은 그림에 있습니다.

우리의 이메일 내용이 다음과 같다고 가정해보세요:

파일 content.php 코드는 다음과 같습니다:

<table width="555" height="50" border="0" align="center" cellpadding="0" cellspacing="0" background="<?=$bg?>">
<tr>
 <td>这是测试内容</td>
   </tr>
   <tr>
 <td> </td>
   </tr>
   <tr>
 <td> </td>
   </tr>
 </table>

이 $bg를 어떻게 작성하나요? 이메일이 여러 사람에게 전송되면 어떻게 되나요? 여기서 어떻게 구별하나요?

링크가 다음과 같다고 가정해보세요: http://www.xxx.com/image.php?email=$email image.php의 코드를 다시 살펴보세요

image.php 파일 코드는 다음과 같습니다. :

<?php 
$email=$_GET["email"]; 
if($id) 
{ 
  include_once("/conn.php"); 
  mysql_query("update mail_list set has_read=&#39;yes&#39; where email=&#39;$email&#39;"); 
} 
header("Content/type:image/gif"); 
$im=imagecreatefromgif("bg.gif"); 
imagegif($im); 
imagedestroy($im); 
?>

이 글을 보시면 이해가 되실 겁니다. 그래서 제가 보낸 이메일의 내용은 다음과 같습니다:

<?php 
ob_start(); 
include_once("content.php"); 
$content=ob_get_contents(); 
ob_end_clean(); 
?>

여기에 작성되었으며, 이메일 내용의 배경 이미지를 바꾸지 않았습니다. 다음 문제는 이 문제를 phpmail을 사용하여 점차적으로 해결해 나갈 것입니다. 이메일 코드:

<?php 
/* 
$contact=array("userA"=>"aaaa@sina.com","userB""=>"bbb@163.com","userC"=>"ccc@qq.com"); 
*/ 
foreach ($contact as $unm=>$email) 
{ 
  $bg_file="http://{$_SERVER[&#39;SERVER_NAME&#39;]}/image.php?email=$email"; 
  $str=str_replace(&#39;background=""&#39;,"background=\"$bg_file\"",$content); 
  $mail->MsgHTML($str); 
  $mail->AddAddress($email,$unm); 
  $mail->Send(); 
} 
?>

왜 루프를 통해 하나씩 보내야 하나요? 어떤 연락처가 이메일을 읽었는지 구분하기 위해 각 이메일 내용의 배경 이미지가 다르게 표시되기 때문입니다. 보내기 전에 콘텐츠를 처리하고 배경을 교체하여 우리가 보는 이메일 콘텐츠의 배경 이미지 src가 다음과 같이 되도록 합니다: http://www.domain.com/image.php?email= aaa@sina .com잠깐.

여기서 또 다른 문제가 있다는 점에 유의하세요. 위 코드를 실행하면 문제가 발견됩니다. 첫 번째 사람에게 보낸 이메일은 3개, 두 번째 사람에게 보낸 이메일은 2개, 세 번째 사람에게 보낸 이메일은 1개입니다. 모직물? 여기서 AddAddress 메소드를 살펴보겠습니다. 수정 방법은 다음과 같습니다. class.phpmailer.php를 열고 310행을 찾아 private $to=Array()를 public $to=Array()로 변경합니다.

그런 다음 다음을 추가합니다.

$mail->to=Array();
$mail->AddAddress($email,$unm);

이메일 전송을 위한 코드를 작성합니다. 이 시점에서는 너무 많이 설명할 필요가 없습니다.

위 내용은 PHP가 수신자가 이메일을 읽었는지 여부를 확인하는 방법에 대한 자세한 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.