【问题标题】:Stripping content from emails从电子邮件中删除内容
【发布时间】:2018-01-27 12:22:16
【问题描述】:

我编写了一个脚本来从我的 IMAP 服务器中检索电子邮件。一切正常。

我想保留一些 HTML 标记,因此编写了额外的代码来去除未包含在我的允许列表中的标记 - 再次,一切正常。

我的问题是收到的一些电子邮件包含我也想删除的其他内容。例如,最近收到的一封电子邮件包含...

v:* {behavior:url(#default#VML);} o:* {behavior:url(#default#VML);} w:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);}

在电子邮件内容的顶部。

如何删除此类内容以确保仅捕获实际的电子邮件内容?

我宁愿不使用纯文本内容(除非这是电子邮件中的唯一内容),因为电子邮件可能包含链接或强调某些我需要维护的短语。

谢谢 迈克

【问题讨论】:

    标签: php php-imap


    【解决方案1】:

    您可以使用preg_replace() 跳过一些不需要的内容。

    尝试类似:

    $str = "
    content
    v:* {behavior:url(#default#VML);}
    some other content
    o:* {behavior:url(#default#VML);}
    some other content
    w:* {behavior:url(#default#VML);}
    some other content
    .shape {behavior:url(#default#VML);}
    some other content
    " ;
    
    $str = preg_replace('~([a-z]:\*|\.shape) \{(.*?)\}~', '', $str);
    var_dump($str) ;
    

    将输出:

    string(89) "
    content
    
    some other content
    
    some other content
    
    some other content
    
    some other content
    "
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2014-03-28
      • 1970-01-01
      • 2015-08-11
      • 2018-03-01
      • 1970-01-01
      相关资源
      最近更新 更多