首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将电子邮件正文存储在数据库中的最佳方法

将电子邮件正文存储在数据库中的最佳方法
EN

Stack Overflow用户
提问于 2015-08-10 08:39:55
回答 1查看 5.4K关注 0票数 4

我正在开发一种应用程序,我可以通过cron工作从收件箱中获取电子邮件,我只需将邮件、邮件主题和邮件正文插入到MySQL数据库中。

我遇到的问题是不同的邮件类型,比如HTML邮件,纯文本邮件,..

有什么办法能拿到短信吗?我尝试过使用printable_decode和HTML,但这有时会导致一个空体插入或一个带有所有特殊字符或有时是完美的。

代码语言:javascript
复制
    //$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页面上显示它们,但并不总是那么容易。

也许我处理这个问题的方式完全错误,但也许你们有一些建议,想法或其他什么?

谢谢你,伯特

EN

回答 1

Stack Overflow用户

发布于 2015-08-10 08:54:23

如果电子邮件发送正确,应该有纯文本和HTML,但这是一个理想的世界。

所以我建议你去。

  1. 用于MySQL的转义字符串
  2. 使用strip_tags删除潜在危险的html标记(如脚本等)

向用户展示时

  1. 从MySQL取消转义数据
  2. 显示剥离的数据。

您还可以使用eml解析器并将eml文件保存在DB中。

检查:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31915127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档