带有Outlook365的PHPMailer - imap_append 7KB大小限制

时间:2018-02-28 03:29:57

标签: php outlook office365 phpmailer imap

我有PHPMailer设置使用我们的Outlook365服务器发送带附件的电子邮件。它很有效,直到脚本使用imap_append尝试将消息添加到我们发送的"夹。我发现,如果附件的大小超过7KB,则会失败。不到7KB,它的工作原理。收件人以任何一种方式收到附件。

知道这种限制来自何处以及如何增加它?

这是用于将邮件保存到已发送文件夹的代码块。

function save_mail($mail) {
global $config;
$MailHost = "{".$config->MailHost."/imap/ssl/novalidate-cert}Sent Items";
$path = $MailHost; 
if ($conn = imap_open($path, $config->MailUsername, $config->MailPassword)) {
    if (imap_append($conn, $path, $mail->getSentMIMEMessage())) {
        $result = true;
    } else {
        error_log("ERROR: Unable to save mail to 'Sent Items' folder.\n  - " . imap_last_error());
        $result = false;
    }
    imap_close($conn);
    return $result;
} else {
    error_log("ERROR: Unable to connect to IMAP server.");
    return false;
}

}

1 个答案:

答案 0 :(得分:0)

根据我今天的测试,如果发送给具有附件或嵌入式图像大于7kb的基于Exchange的IMAP服务器,则需要将行返回值从unix格式更改为Windows格式。我只是在'\ n'上做了一个字符串替换,并用'\ r \ n'替换了以完成此操作。

$content =  str_replace("\n", "\r\n", $mail->getSentMIMEMessage());