gpt4 book ai didi

php - imap_open 将邮件正文显示为纯文本

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:35:36 25 4
gpt4 key购买 nike

我在 PHP 中使用 imap_open 但消息正文显示如下:

<html xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" xmlns:m=\"http://schemas.microsoft.com/office/2004/12/omml\" xmlns=\"http://www.w3.org/TR/REC-html40\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=us-ascii\">
<meta name=\"Generator\" content=\"Microsoft Word 14 (filtered medium)\">
<!--[if !mso]><style>v\\:* {behavior:url(#default#VML);}
o\\:* {behavior:url(#default#VML);}
w\\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:\"Times New Roman\",\"serif\";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:\"Balloon Text Char\";
margin:0cm;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:\"Tahoma\",\"sans-serif\";}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:\"Calibri\",\"sans-serif\";
color:#1F497D;}
span.BalloonTextChar
{mso-style-name:\"Balloon Text Char\";
mso-style-priority:99;
mso-style-link:\"Balloon Text\";
font-family:\"Tahoma\",\"sans-serif\";}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style>

...继续

这是我正在使用的代码。

//try to connect
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect: ' . imap_last_error());
//grab emails
$emails = imap_search($inbox,'ALL');
//if emails are returned, cycle through each...
if($emails) {
//put the newest emails on top
rsort($emails);

//for every email...
foreach($emails as $email_number) {
//get information specific to this email
$header=imap_headerinfo($inbox,$email_number);
$structure = imap_fetchstructure($inbox,$email_number);
$from = $header->from[0]->mailbox."@".$header->from[0]->host;

$toaddress = array_shift($header->to);
$toaddress->mailbox."@".$toaddress->host;
$replyto=$header->reply_to[0]->mailbox."@".$header->reply_to[0]->host;
$datetime=date("Y-m-d H:i:s",$header->udate);
$subject=$header->subject;

//get message body
$message = imap_fetchbody($inbox, $email_number, 1.2);

if(base64_decode($message, true)) {
//message body if base64 encoded
$message = base64_decode($message);
} else {
//message body is not base64 encoded
$message = $message = imap_fetchbody($inbox, $email_number, 1);
}

$message = strip_tags($message);

}
}

我添加了if语句来查看消息正文是否是base64编码的,是否解码它但有时仍然显示如上。其他时候它显示为纯文本,但有很大的换行符。

有没有办法让整个邮件正文成为纯文本?

最佳答案

试试 $msg = imap_fetchbody($inbox,$email_number,1.1);
而不是 $msg = imap_fetchbody($inbox,$email_number,1.2);

http://php.net/manual/en/function.imap-fetchbody.php#89002 上找到了有关此主题的更多信息:

imap-fetchbody() 将解码附加的电子邮件消息与电子邮件的其余部分内联,但是它在处理附加电子邮件消息时的工作方式与主电子邮件消息不一致。

对于只有文本正文且没有任何 MIME 附件的电子邮件,imap-fetchbody() 将为每个请求的部件号返回以下内容:

  • (空)- 整条消息
  • 0 邮件标题
  • 1 - 正文

如果电子邮件消息是 MIME 格式的多部分消息,包含纯文本和 HTML 的消息文本,并且有一个 file.ext 附件,imap-fetchbody() 将为每个消息返回如下内容要求的零件号:

  • (空)- 整条消息
  • 0 邮件标题
  • 1 个多部分/备选
  • 1.1 - 文本/纯文本
  • 1.2 - TEXT/HTML 2 - file.ext

现在,如果您将上述电子邮件附加到带有纯文本和 HTML 消息文本的电子邮件中,imap_fetchbody() 将使用这种类型的部件号系统:

  • (空)- 整条消息
  • 0 - 邮件标题
  • 1 - 多部分/替代
  • 1.1 - 文本/纯文本
  • 1.2 - 文本/HTML
  • 2 - MESSAGE/RFC822(完整的附加信息)
  • 2.0 - 附加邮件标题
  • 2.1 - 文本/纯文本
  • 2.2 - 文本/HTML
  • 2.3 - 文件.ext

关于php - imap_open 将邮件正文显示为纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21581502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com