Php Zend_Mail and=0D=0A=3D=3D=3D=3D=3D=3D=3D
我正在编写一个帮助台管道处理程序,将传入的电子邮件作为帮助台通知单的答复进行管道处理。有些电子邮件发送得非常好,另一些邮件则是一堆乱七八糟的文本,所有的邮件都被塞进了一根巨大的字符串中。有人知道如何把它解码成纯文本吗 作为参考,这是我的邮件解析器函数:Php Zend_Mail and=0D=0A=3D=3D=3D=3D=3D=3D=3D,php,email,zend-framework,Php,Email,Zend Framework,我正在编写一个帮助台管道处理程序,将传入的电子邮件作为帮助台通知单的答复进行管道处理。有些电子邮件发送得非常好,另一些邮件则是一堆乱七八糟的文本,所有的邮件都被塞进了一根巨大的字符串中。有人知道如何把它解码成纯文本吗 作为参考,这是我的邮件解析器函数: public function parseEmailMessage(Zend_Mail_Message $msg) { if ($msg->isMultiPart()) { $arrAttachments = arr
public function parseEmailMessage(Zend_Mail_Message $msg)
{
if ($msg->isMultiPart()) {
$arrAttachments = array();
$body = '';
// Multipart Mime Message
foreach (new RecursiveIteratorIterator($msg) as $part) {
try {
$mimeType = strtok($part->contentType, ';');
// Parse file name
preg_match('/name="(?<filename>[a-zA-Z0-9.\-_]+)"/is', $part->contentType, $attachmentName);
// Append plaintext results to $body
// All other content parts will be treated as attachments
switch ($mimeType) {
case 'text/plain':
$body .= trim($part->getContent()) . "\n";
break;
case 'text/html':
$body .= trim(strip_tags($part->getContent));
break;
default:
$arrAttachments[] = array(
'attachment_mime' => $mimeType,
'attachment_name' => $this->filterFileName($attachmentName['filename']),
'base64data' => trim($part->getContent())
);
}
} catch (Zend_Mail_Exception $e) {
// ignore
}
}
return array($body, $arrAttachments);
} else {
// Plain text message
return array(trim($msg->getContent()), array());
}
}
公共函数parseEmailMessage(Zend_Mail_Message$msg)
{
如果($msg->isMultiPart()){
$arrAttachments=array();
$body='';
//多部分Mime消息
foreach(新的递归迭代器($msg)作为$part){
试一试{
$mimeType=strtok($part->contentType,;”);
//解析文件名
preg\u match('/name=“(?[a-zA-Z0-9.\-\u]+)”/is',$part->contentType,$attachmentName);
//将纯文本结果附加到$body
//所有其他内容部分将被视为附件
交换机($mimeType){
“文本/普通”大小写:
$body.=trim($part->getContent())。“\n”;
打破
案例“text/html”:
$body.=trim(带标签($part->getContent));
打破
违约:
$ArraAttachments[]=数组(
“附件\u mime”=>$mimeType,
'attachment_name'=>$this->filterFileName($attachmentName['filename']),
'base64data'=>trim($part->getContent())
);
}
}捕获(Zend_邮件例外$e){
//忽略
}
}
返回数组($body,$arrAttachments);
}否则{
//纯文本消息
返回数组(trim($msg->getContent()),数组());
}
}
我猜内容类型没有正确指定,Zend不知道如何解码。我知道我以前见过这种情况,但我不记得它是在哪里或如何“解决”的
看起来引用的可打印文件被当作纯文本处理 很抱歉,我来这里是想看看=0D=0A=3D=3D=3D=3D是关于什么的。我们的一些脚本也会发生这种情况——如果我正确地记得我要找的是什么,苹果Mac应该受到责备。php中的函数称为quoted_printable_decode();你帮我省去了几个小时的挫折,谢谢你