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>
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='yes' where email='$email'"); } 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['SERVER_NAME']}/image.php?email=$email"; $str=str_replace('background=""',"background=\"$bg_file\"",$content); $mail->MsgHTML($str); $mail->AddAddress($email,$unm); $mail->Send(); } ?>
http://www.domain.com/image.php?email= aaa@sina .com待ってください。
ここで別の問題があることに注意してください。上記のコードを実行すると、1 人目に 3 通のメールが送信され、2 人目に 2 通のメールが送信されます。なぜでしょうか。毛織物?ここでは、AddAddress メソッドを見てみましょう。変更方法は次のとおりです: class.phpmailer.php を開き、310 行目を見つけて、private $to=Array() を public $to=Array() に変更します。
次に、メール送信用のコードを追加します:$mail->to=Array(); $mail->AddAddress($email,$unm);
以上がPHP が受信者が電子メールを読んだかどうかを判断する方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。