带有 Outlook365 的 PHPMailer - imap_append 7KB 大小限制
PHPMailer with Outlook365 - imap_append 7KB size limit
我安装了 PHPMailer 以使用我们的 Outlook365 服务器发送带附件的电子邮件。在脚本使用 imap_append
尝试将消息添加到我们的 "sent" 文件夹之前,它一直有效。我发现,如果附件大小超过 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;
}
}
根据我今天的测试,如果发送到基于 Exchange 的 IMAP 服务器且附件或嵌入图像大于 7kb,您需要将行 returns 从 unix 格式更改为 windows 格式.我只是在 '\n' 上做了一个字符串替换并替换为 '\r\n' 来完成这个。
$content = str_replace("\n", "\r\n", $mail->getSentMIMEMessage());
我安装了 PHPMailer 以使用我们的 Outlook365 服务器发送带附件的电子邮件。在脚本使用 imap_append
尝试将消息添加到我们的 "sent" 文件夹之前,它一直有效。我发现,如果附件大小超过 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;
}
}
根据我今天的测试,如果发送到基于 Exchange 的 IMAP 服务器且附件或嵌入图像大于 7kb,您需要将行 returns 从 unix 格式更改为 windows 格式.我只是在 '\n' 上做了一个字符串替换并替换为 '\r\n' 来完成这个。
$content = str_replace("\n", "\r\n", $mail->getSentMIMEMessage());