Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何提取邮件正文,有内容配置的时候?

如何提取邮件正文,有内容配置的时候?
EN

Stack Overflow用户
提问于 2013-09-25 05:08:07
回答 1查看 921关注 0票数 3

如何提取邮件正文,有内容配置的时候?

header1

代码语言:javascript
运行
AI代码解释
复制
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [x.x.x.x]
Content-Type: application/pkcs7-mime; smime-type=signed-data;
    name="smime.p7m"
Content-Disposition: attachment; filename="smime.p7m"
Content-Transfer-Encoding: base64
MIME-Version: 1.0

header2:

代码语言:javascript
运行
AI代码解释
复制
   Accept-Language: en-US
    Content-Language: en-US
    X-MS-Has-Attach:
    X-MS-TNEF-Correlator:
    x-originating-ip: [x.x.x.x]
    Content-Type: multipart/alternative;
        boundary="_000_A61C9CD725DF1C4FA94C13EC538A38BEEaz18ex3004_"
    MIME-Version: 1.0

当我签名发送邮件时,邮件的头部格式为"header1“;当我发送邮件时,没有签名的邮件,邮件头部的格式为”header2“。

我目前正在使用mimemailparser.class.php文件中的" getMessageBody()" method来提取邮件正文。

在签名邮件上,我无法检索邮件正文,在使用"getmessagebody()" method时,它返回空正文,但在未签名邮件上,它可以检索邮件正文。

在检查签名和未签名的邮件头时,存在差异,如何在签名邮件(header1)上提取邮件正文?

EN

回答 1

Stack Overflow用户

发布于 2013-10-01 19:32:41

看看类中的方法getMessageBody(),代码的以下部分:

代码语言:javascript
运行
AI代码解释
复制
foreach($this->parts as $part) {
  if ($this->getPartContentType($part) == $mime_types[$type]) {
    $headers = $this->getPartHeaders($part);
    $body    = $this->decode($this->getPartBody($part), array_key_exists('content-transfer-encoding', $headers) ? $headers['content-transfer-encoding'] : '');
    break;
  }
}

类将MIME消息分成几个部分,可能会出现这样的情况:正文被分成几个部分,但代码只解码第一部分(在您的情况下可能是空的)。尝试像这样修改此代码:

代码语言:javascript
运行
AI代码解释
复制
foreach ($this->parts as $part) {
  if ($this->getPartContentType($part) == $mime_types[$type]) {
    $headers = $this->getPartHeaders($part);
    $body   .= $this->decode($this->getPartBody($part), array_key_exists('content-transfer-encoding', $headers) ? $headers['content-transfer-encoding'] : '');
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18996658

复制
相关文章
shell 字符串操作 ${} 的截取,删除,和 替换
字符串截取 字符长度 [user@host dir]$ str=123abc123 [user@host dir]$ echo ${#str} 9 从左边截取 ${string:position:length} :从字符串 string 的 position 位置截取 length 个字符串 [user@host dir]$ str=123abc123 [user@host dir]$ echo ${str:3:3} abc [user@host dir]$ echo "${str:0:${
solve
2019/10/30
8.2K1
在 Python 中的常见的几种字符串替换操作
比如,输入的字符串为’one two one two one’,第一个参数为替换前的参数,第二个为替换后的参数。默认会替换字符串中的所有符合条件的字符串。
全栈程序员站长
2022/09/07
6.4K0
java字符串操作:如何实现字符串的反转及替换?
可用字符串构造一 StringBuffer 对象,然后调用 StringBuffer 中的 reverse
MickyInvQ
2020/09/27
1.3K0
mongodb 字符串查找匹配中$regex的用法
官网地址:https://docs.mongodb.com/manual/reference/operator/query/regex/#regex-case-insensitive
庞小明
2018/12/10
6.3K0
【Kotlin】字符串操作 ② ( 字符串替换函数 replace | 字符串比较操作符 == 和 === | 字符串遍历 forEach )
对应代码中的 Regex("[ol]") , 该正则表达式的含义是 单个字符 o 或者 l ;
韩曙亮
2023/03/30
1.7K0
【Kotlin】字符串操作 ② ( 字符串替换函数 replace | 字符串比较操作符 == 和 === | 字符串遍历 forEach )
C++实现字符串的分割和替换
代码主要说明: (1)tmp.find(target):查找子串第一次出现的下标; (2)string::npos:表示未查找到子串时返回的数值。MSDN中规定,其值定义如下:static const size_type npos = -1;,转换为无符号整型unsignned int表示的是string所能容纳的最大字符数。 (3)string::size_type (由字符串配置器 allocator 定义) 描述的是 string的size,故需为无符号整数型别。因为字符串配置器缺省以类型size_t 作为 size_type。
恋喵大鲤鱼
2019/02/22
2.9K0
C++实现字符串的分割和替换
代码主要说明: (1)tmp.find(target):查找子串第一次出现的下标; (2)string::npos:表示未查找到子串时返回的数值。MSDN中规定,其值定义如下:static const size_type npos = -1;,转换为无符号整型unsignned int表示的是string所能容纳的最大字符数。 (3)string::size_type (由字符串配置器 allocator 定义) 描述的是 string的size,故需为无符号整数型别。因为字符串配置器缺省以类型size_t 作为 size_type。
恋喵大鲤鱼
2018/08/03
9310
字符串内容的替换
字符串string类有成员函数replace() string str; string s1; str.replace(pos,len,s1);//使用s1的长度为len,从str的pos位置开始替换 str.replace(pos,len,s1,pos1,len1);//使用s1的子串从pos1开始长度为len1。替换str中从pos开始长度为len的长度
杨鹏伟
2021/06/17
3.1K0
Pandas中高效的选择和替换操作总结
作为数据科学家,使用正确的工具和技术来最大限度地利用数据是很重要的。Pandas是数据操作、分析和可视化的重要工具,有效地使用Pandas可能具有挑战性,从使用向量化操作到利用内置函数,这些最佳实践可以帮助数据科学家使用Pandas快速准确地分析和可视化数据。
deephub
2023/02/01
1.3K0
Python 字符串操作(截取/替换/查找/分割)
截取字符串使用 变量[头下标:尾下标],就可以截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
IT工作者
2022/07/07
2.8K0
js替换html中的字符串,js怎么替换字符串?
在js中,可以使用str.replace()方法来替换字符串。replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串;然后返回一个新的字符串。
全栈程序员站长
2022/08/30
24.1K0
js替换html中的字符串,js怎么替换字符串?
Makefile中的字符串替换
Makefile Tutotial最后给出了一段makefile,里面OBJS有字符串通配、替换的过程:
mingjie
2023/10/13
7170
删除字符串中的子串(C++ regex求解)
输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2。
喜欢ctrl的cxk
2019/11/07
3.5K0
字符串替换
每行数据是一个字符串,长度不超过1000  数据以EOF结束输出对于输入的每一行,输出替换后的字符串样例输入
书童小二
2018/09/03
3K0
Java中替换字符串的方法
1. replace的参数是char和CharSequence,即可以支持字符的替换,也支持字符串的替换(CharSequence即字符串序列的意思,说白了就是字符串的意思)。
bisal
2021/10/15
5.9K0
字符串中符号的替换---replace的用法
1 #include<iostream> 2 #include<string> 3 4 using namespace std; 5 6 int main() 7 { 8 string s1 = "one*two*three";//Given String 9 string s2 = "*";//delimeter 10 string s3 = ",";//string to replace 11
猿人谷
2018/01/17
3.8K0
字符串中符号的替换---replace的用法
Java基础入门之字符串的转换、替换、删除和判断
1.在开发过程中,有时需要对字符串的转换操作,例如字符串的字母大小写转换把”abc”转换成”ABC”,基本数据类型转换成字符串、字符数组转换成字符串,字符串转成数组的形式等。
Java进阶者
2021/03/29
9850
php 字符串替换中文,PHP中文字符串替换其中为*的方法
在项目中需要对字符串的部分进行隐藏或者替换。譬如手机号码的中间几位进行隐藏,中文名字的中间替换为*号等。
全栈程序员站长
2022/08/25
8K0
基于PHP中自带的字符串操作函数合集
strpos($str,search,[int])://查找search在$str中的第一次位置从int开始; strrpos($str,search,[int])://查找search在$str中的最后一次出现的位置从int开始
用户2323866
2021/07/01
6500
点击加载更多

相似问题

基于Regex的字符串替换操作不起作用

10

字符串操作/regex-查找和替换

11

基于Java Regex的字符串替换

22

基于位置替换字符串部分的Regex

46

Python -基于regex检索和替换

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档