gpt4 book ai didi

php发送带附件的电子邮件

转载 作者:行者123 更新时间:2023-12-04 13:44:49 28 4
gpt4 key购买 nike

我似乎找不到我写的这个 php 函数的问题,它应该发送一封带有附件的电子邮件。我已经为此苦苦挣扎了一段时间。

function myMail($to, $subject, $mail_msg, $filename, $contentType){

$random_hash = md5(date('r', time()));
$headers = "From: webmaster@example.com\r\nReply-To: ".$to;
$headers .= "\r\nContent-Type: ".$contentType.
"; boundary=\"PHP-mixed-".$random_hash."\"";

$attachment = chunk_split(base64_encode(file_get_contents($filename)));
ob_start();

echo "
--PHP-mixed-$random_hash
Content-Type: multipart/alternative; boundary=\"PHP-alt-$random_hash\"

--PHP-alt-$random_hash
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$mail_msg

--PHP-alt-$random_hash

--PHP-mixed-$random_hash--
Content-Type: text/plain; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

$attachment
--PHP-mixed-$random_hash--
";
$message = ob_get_clean();
$mail_sent = @mail( $to, $subject, $message, $headers );
return $mail_sent ? "Mail sent" : "Mail failed";
}

编辑 问题是邮件的消息与文件混合并作为附件发送。

最佳答案

我刚刚查看了几封电子邮件,我注意到最后的附件边界以“--”结尾,而开头的边界标记则没有。在您的代码中,您有:

--PHP-mixed-$random_hash--
Content-Type: text/plain; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

$attachment
--PHP-mixed-$random_hash--

也许应该是:
--PHP-mixed-$random_hash
Content-Type: text/plain; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment

$attachment
--PHP-mixed-$random_hash--

看看这里的例子:

http://en.wikipedia.org/wiki/MIME#Multipart_messages

关于php发送带附件的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3092821/

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