Php 如何将电子邮件附件保存为电子邮件?
我对用php处理电子邮件很陌生 基本上,我需要读取pop3邮箱并将邮件保存到数据库中,将附件保存到文件夹中。然后将同样的邮件(稍加修改)寄回给另一个电子邮件收件人 我以为这一切都正常工作了,然后我意识到当附件是另一封邮件时,我只接收文本形式的正文(base64_解码后) 是否可以将附加的电子邮件保存到文件中,然后在另一封邮件中作为附件发送 任何帮助都将不胜感激 下面是一些代码,可以将其放到透视图中:Php 如何将电子邮件附件保存为电子邮件?,php,Php,我对用php处理电子邮件很陌生 基本上,我需要读取pop3邮箱并将邮件保存到数据库中,将附件保存到文件夹中。然后将同样的邮件(稍加修改)寄回给另一个电子邮件收件人 我以为这一切都正常工作了,然后我意识到当附件是另一封邮件时,我只接收文本形式的正文(base64_解码后) 是否可以将附加的电子邮件保存到文件中,然后在另一封邮件中作为附件发送 任何帮助都将不胜感激 下面是一些代码,可以将其放到透视图中: // This is the IMAP connection: imap_open("{"."$
// This is the IMAP connection: imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass,OP_SILENT);
$mailConnection = $this->Maildata->mail_login($host,$port,$user,$pass,$folder,$ssl);
// This retrieves the list of mails in the current folder
$messageList = $this->Maildata->mail_list($mailConnection,$message);
foreach ($messageList as $messageId => $messageListData) {
// This reads the mail object into an array
$mailMessage = $this->Maildata->mail_mime_to_array($mailConnection,$messageId,true);
// This loops through each mail
foreach ($mailMessage as $tmpId => $tmpData) {
// Excluded save to database since it is unrelated
// This checks if item is an attachment and saves it.
if (isset($tmpData['is_attachment']) && $tmpData['is_attachment'] === true) {
$tmpName = date('Y-m-d H:i:s', strtotime('now'));
$this->Maildata->mail_attachment_save($tmpData['data'], $tmpName .$tmpData['name']);
}
}
}
顺便说一句,这一切都有效,但是imap\u fetchbody($mailConnection,$messageId,$prefix)代码>似乎没有发送我需要的所有数据。是
您可以将附加的邮件另存为文件,但其格式不能被Microsoft Office Outlook理解。有趣的是,如果您将文件另存为.eml,那么windows live mail将完美地处理该邮件
没有任何网络邮件服务像outlook和windlows live mail那样处理附加邮件,gmail会完全忽略这些邮件。请向我们展示您的代码。说它是“另一条消息”是不正确的,您使用的是什么MIME解析器?这可能会有所帮助:即使它说“IMAP”,我相信它也可以与POP一起工作。@DaveRandom我使用IMAP连接到邮箱。我将添加一些代码,但我不相信它会有帮助。@Nightwolf您使用哪个库/函数来完成此操作?@DaveRandom我使用的代码是唯一的注释。但是代码中有一些我需要纠正的简单缺陷。