我正在开发一种应用程序,我可以通过cron工作从收件箱中获取电子邮件,我只需将邮件、邮件主题和邮件正文插入到MySQL数据库中。
我遇到的问题是不同的邮件类型,比如HTML邮件,纯文本邮件,..
有什么办法能拿到短信吗?我尝试过使用printable_decode和HTML,但这有时会导致一个空体插入或一个带有所有特殊字符或有时是完美的。
//$body = mysqli_real_escape_string($db, htmlentities(quoted_printable_decode(imap_fetchbody($stream,$email_id, 1.2)), ENT_QUOTES));
$body = mysqli_real_escape_string($db, quoted_printable_decode(imap_fetchbody($stream,$email_id, 1.2)));
//$body = quoted_printable_decode(imap_fetchbody($stream,$email_id,2));
$bodyText = imap_fetchbody($stream,$email_id,1.2);
if(!strlen($bodyText)>0){
$bodyText = "<html><body>".imap_fetchbody($stream,$email_id,1)."</body></html>";
}然后,我尝试了完整的html正文,但这给插入到我的数据库中带来了问题,如果我转义字符串,HTML就会变得混乱。我暂时修复了它,获得了完整的HTML正文,并将其写入一个.html文件,但这并不是一个真正的选项。
我将它们存储到MySQL数据库的原因是为了给用户分配颜色。对于不同的邮件(这不是Outlook中iMAP邮件的一个选项)。
我的最终想法是保存电子邮件,就像它在outlook中显示的那样,然后在.php页面上显示它们,但并不总是那么容易。
也许我处理这个问题的方式完全错误,但也许你们有一些建议,想法或其他什么?
谢谢你,伯特
发布于 2015-08-10 08:54:23
如果电子邮件发送正确,应该有纯文本和HTML,但这是一个理想的世界。
所以我建议你去。
向用户展示时
您还可以使用eml解析器并将eml文件保存在DB中。
检查:
https://stackoverflow.com/questions/31915127
复制相似问题