我想跟踪电子邮件是否已打开。电子邮件应使用Gmail API发送。我试图用我的PHP脚本的路径发送和图像,该脚本获取消息的ID并记录它。我的电子邮件正文内容代码如下:
$strMailContent="image -> <img border='2' src='http://localhost/app/mailTracker.php?id=12' alt='image for email'> ";
$strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= $strMailContent . "\r\n";
当然我的整个电子邮件都已编译,但这是相关部分,所以我只分享这个。我已指定'Content-Type: text/html;
然后为什么不发送图像?接收方只显示文字。图像根本没有出现。我也尝试了内联方法。这也没有用。内联代码是:
$strMailContent="image -> <img border='2' src='cid:trackerImage' alt='image for email'> ";
$strRawMessage .= 'Content-Type: text/html; charset=' . $charset . "\r\n";
$strRawMessage .= 'Content-Transfer-Encoding: quoted-printable' . "\r\n\r\n";
$strRawMessage .= $strMailContent . "\r\n";
$strRawMessage .= "\r\n--{$aboundary}\r\n";
//construct inline images here
$fileName = "images/ajax-loader.gif";
$strRawMessage .= 'Content-Type: image/gif; name="'. $fileName .'";' . "\r\n";
$strRawMessage .= "Content-Transfer-Encoding: base64\r\n";
$strRawMessage .= 'Content-Description: inline;' . "\r\n";
$strRawMessage .= 'Content-ID: <'.'trackerImage'.'>' . "\r\n\r\n";
$strRawMessage .= chunk_split(base64_encode(file_get_contents($trackerPath)), 76, "\n") . "\r\n";
内联方法的问题是图像仅出现在桌面客户端上,而不是出现在Web客户端上。另一个问题是使用内联方法,我无法实现我的目标,即调用我的脚本并进行日志记录。请任何人分享关于如何使用Gmail API进行电子邮件跟踪(检查是否已打开)的想法或想法?