加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

从其所有先前的消息和元数据(Sendgrid Parse API / PHP)中提取电

发布时间:2020-12-13 22:40:39 所属栏目:PHP教程 来源:网络整理
导读:我正在使用 Sendgrid and their Parse API发送/接收电子邮件. Parse API允许一个人的网络应用程序接收电子邮件作为$_POST,但问题是在$_POST中我希望能够从其先前的消息和链接的元数据中提取消息本身. 为了向您展示我在下图中的含义,我只想捕捉文本“尝试从GM
我正在使用 Sendgrid and their Parse API发送/接收电子邮件. Parse API允许一个人的网络应用程序接收电子邮件作为$_POST,但问题是在$_POST中我希望能够从其先前的消息和链接的元数据中提取消息本身.

为了向您展示我在下图中的含义,我只想捕捉文本“尝试从GMAIL从12373发送到12373”而不是它下面的所有垃圾.如果那是不可能的,有没有人对如何解析电子邮件正文($_POST [‘text’])提出任何建议,以便我可以将邮件本身分开?

问题是根据电子邮件客户端(gmail,outlook等),我不清楚日期信息,在这种情况下:“2013年1月23日星期三……”,将允许关注消息本身.如果所有电子邮件客户端都将日期放在消息下面,那么看起来我可以设计一个花哨的正则表达式来查找换行符后跟日期或其他内容.思考?

你有几个选择:

1)插入分割电子邮件的令牌

你可以做类似的事情 – 在这一行上面回复—然后删掉那个令牌下方的所有内容.

2)使用电子邮件回复解析库

有一个非常好的done by github,但它是ruby.有一个php port虽然可能对你需要的东西有益:

完全工作的代码:

<?php
  require_once 'application/third_party/EmailReplyParser-master/src/autoload.php';
  $email = new EmailReplyParserEmail();
  $reply = $email->read($_POST['text']);            
  $message=$reply[0]->getContent();
  $message=preg_replace('~On(.*?)wrote:(.*?)$~si','',$message); 
  //Last line is needed for some email clients,e.g.,some university e-mails: foo@bar.edu but not Gmail or Hotmail,to get rid of "On Jan 23...wrote:" 
  //This failure to remove "On Jan 23...wrote:" is a known issue and is documented in their README

 ?>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读