php - 从 windows 系统邮件发送正常,但托管到 centos 后,邮件以加密格式发送
问题描述
从 Windows 系统(本地)它工作正常,但在托管到 centos 后,邮件以加密格式发送。以下代码我用来发送邮件。
$boundary = md5("sanwebe");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From:".$from_email."\r\n";
$headers .= "Reply-To: ".$from_email."" . "\r\n";
$headers .= "CC: ".$cc."" . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary = $boundary\r\n\r\n";
$body = "--$boundary\r\n";
$body .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$body .= "Content-Transfer-Encoding: base64\r\n\r\n";
$body .= chunk_split(base64_encode($message));
//attachment
if (file_exists($file_name)){
$body .= "--$boundary\r\n";
$body .="Content-Type: $file_type; name=".$file_name."\r\n";
$body .="Content-Disposition: attachment; filename=".$file_name."\r\n";
$body .="Content-Transfer-Encoding: base64\r\n";
$body .="X-Attachment-Id: ".rand(1000,99999)."\r\n\r\n";
$body .= $encoded_content;
}
$sentMail = @mail($recipient_email, $subject, $body, $headers);
输出邮件是:
8de2a431c506316063ec3a4044192e46
PGh0bWw+PGJvZHk+PHN0cm9uZz5EZWFyIFNpci9NYWRhbSw8L3N0cm9uZz4gPGJyIC8+DQo8YnIg
Lz4NCgkJIEluc3RydW1lbnQgOiBHQy8wMiwgc2VyaWFsX251bWJlciA6IEMxMjA5NTMwMjQ2Nywg
bWFrZSA6U2hpbWFkenUgIG1vZGVsIDpHQyAyMDEwIFBsdXMtIEluc3RydW1lbnQgaXMgYnJlYWtk
b3duIFBsZWFzZSBhbGxvdCBzZXJ2aWNlIFBlcnNvbiA8YnIgLz4NCjxiciAvPg0KQmVzdCBSZWdh
cmRzPGJyIC8+DQpBZG1pbiw8YnIgLz4NCiAgQWRtaW4sPGJyIC8+DQpWaW10YSBMYWJzIExpbWl0
ZWQuPC9ib2R5PjwvaHRtbD4=
解决方案
推荐阅读
- unity3d - 基于纹理像素而不是屏幕的 HLSL 光照
- android - android:foreground 属性 / setForeground() 方法不适用于 Button 元素
- ios - 从视图中删除 Scroll View 及其中的所有内容
- c# - 对 exe 可见的打印机对 Web 应用程序不可见?
- python - 如何错误检查列表索引超出范围
- python - Python并行化“异步”
- java - 使用自然平衡的合并排序即时合并数据
- python - 如何在使用 cv2 保持透明度的同时将图像转换为灰度?
- pandas - Pandas:根据列列表过滤行
- python - 在python列表中增加一个字符串n次