- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
网站上有两个预先存在的问题。一种用于 Python,一种用于 Java。
我希望能够做几乎完全相同的事情(在 PHP 中)。我创建了一个邮件代理,两个人可以通过向一个唯一的电子邮件地址发送电子邮件来一起通信。然而,我发现的问题是,当一个人收到电子邮件并点击回复时,我很难准确地捕获他写的文本并丢弃以前通信中引用的文本。
我正在尝试找到一种适用于 HTML 电子邮件和纯文本电子邮件的解决方案,因为我同时发送这两种电子邮件。
如果有帮助,我也有能力插入一些<*****RESPOND ABOVE HERE*******>
如果需要,请在电子邮件中标记,这意味着我可以丢弃下面的所有内容。
你会推荐我做什么?总是将该标记添加到 HTML 副本和纯文本副本,然后获取其上方的所有内容?
我仍然会知道每个邮件客户端如何创建响应的场景。因为例如 Gmail 会这样做:
On Wed, Nov 2, 2011 at 10:34 AM, Message Platform <35227817-7cfa-46af-a190-390fa8d64a23@dev.example.com> wrote:
## In replies all text above this line is added to your message conversation ##
关于最佳实践的任何建议或建议?
或者我应该只获取 50 个最流行的邮件客户端,然后开始为每个客户端创建自定义正则表达式。然后对于这些客户端中的每一个,还有大量不同的区域设置,因为我猜用户的区域设置也会影响添加的内容。
或者如果它包含日期,我是否应该始终删除前面的行?..等等
最佳答案
不幸的是,如果您想仔细清理电子邮件(删除不属于实际回复电子邮件本身的所有内容),那么您将陷入痛苦的世界。 理想的方法是,正如你所建议的,为每个流行的电子邮件客户端/服务编写正则表达式,但这是一个相当荒谬的工作量,我推荐 being lazy and dumb关于它。
有趣的是,甚至 Facebook engineers遇到这个问题,Google has a patent关于“检测引用文本”的方法。
您可能会认为可以接受三种解决方案:
别管它
第一个解决方案是将所有内容都保留在消息中。大多数电子邮件客户端都这样做,似乎没有人提示。当然,如果在线消息系统(如 Facebook 的“消息”)有初始风格的回复,它们看起来很奇怪。使这项工作正常进行的一种偷偷摸摸的方法是呈现折叠的任何引用行的消息,并包含一个指向“扩展引用文本”的小链接。
将回复与旧消息分开
正如您提到的,第二种解决方案是在您的消息顶部放置一个描述性消息,例如 --------- 请在此行上方回复 -------- --
,然后在处理回复时删除该行和下面的任何内容。许多系统都会这样做,这并不是世界上最糟糕的事情......但它确实让您的电子邮件看起来更加“自动化”并且不那么个人化(在我看来)。
去掉引用的文字
最后一个解决方案是简单地删除以 >
开头的任何新行,这可能是回复电子邮件中引用的行。大多数电子邮件客户端使用这种指示引用文本的方法。这是一些可以做到这一点的正则表达式(在 PHP 中):
$clean_text = preg_replace('/(^\w.+:\n)?(^>.*(\n|$))+/mi', '', $message_body);
使用这种更简单的方法存在一些问题:
>
,这样您就可以去掉引号。On [date],[person] said
。此行很难删除,因为它在不同的电子邮件客户端之间的格式不一样,并且它可能在您删除的引用文本上方一两行。我已经在我的 PHP Imap 中实现了这种检测方法,并取得了一定的成功。图书馆。当然,测试是关键,对于您的特定系统而言,权衡可能是值得的。 YMMV。
关于php - 获取该人刚刚写的实际电子邮件,不包括任何引用的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7978987/
实现信息技术的自主可控,可以说是金融行业最紧迫、最重要的推进战略了。 人民银行、银保监会等主管部门密集出台文件,指导金融行业核心领域自主可控技术应用。 拿数据库来说,自主可控这事儿业内也
在methods中创建方法showtime,传入要跟当前时间要对比的时间 ?
其实这个没什么技术含量,当然就直接贴代码,不废话了, 但是在其实开发中还是蛮有用的,譬如论坛帖子,围脖等都有相关应用 复制代码代码如下: function tranTim
今天,杭州人的朋友圈都被这场晚会刷屏了 分散在全球的阿里人都回到杭州,为阿里巴巴送上20周岁的生日祝福。 阿里巴巴20周年年会,被称作“有史以来杭州规模最大的年会”,没有
在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来。比如微博,SNS类应用就最长用到这个功能。而一般存储在数据库中的时间格式为 Un
我是一名优秀的程序员,十分优秀!