0

我正在做一些测试,到目前为止我尝试了两种解决方案:

第一个在 headers 内发送消息(mail() 函数的消息参数为空)[]

    $boundary = "nextPart";
    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "From: ".$from_name." <".$from.">\r\n";
    $headers .= "Content-Type: multipart/alternative; boundary = $boundary\r\n";
    //Html
    $headers .= "\n--$boundary\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= $html;
    //Text
    $headers .= "\n--$boundary\n";
    $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
    $headers .= $text;

第二个是这个:http ://www.webcheatsheet.com/PHP/send_email_text_html_attachment.php#attachment (设置标题并在消息中发送它们)

它们都不能正常工作(第一个根本不工作,第二个在 gmail 中工作,但它不是格式正确的电子邮件,有些客户无法处理)。剖析 php mailer ( http://phpmailer.worxware.com/index.php?pg=phpmailer ) 的代码,我发现它甚至没有尝试发送多部分电子邮件。

所以我想知道是否可以使用 php 邮件功能发送格式正确的多部分电子邮件。

谢谢

ps我知道并使用梨邮件,我只是想了解这个东西。

4

2 回答 2

2

是的,有可能。PHP 的mail();功能只不过是一个方便的功能,可以将您的“原始”消息传递到底层操作系统的邮件处理程序(例如 sendmail)。

因此,如果您的邮件标题和邮件正文结合起来是正确的 MIME 编码邮件,那么一切都会正常工作。

要弄清楚细节,找一个简单的邮件客户端并分析它的电子邮件。将其与MIME 规范结合起来,您应该可以实现。

于 2010-09-09T10:16:49.137 回答
1

据我所知,mail() 只是发送它给出的东西,所以是的,它完全可以发送你想要的任何东西,包括多部分 mime。事实上,这正是邮件类(pear、phpmailer)在幕后所做的,尽管它们也可以配置为使用其他传输。

换句话说,邮件类与“mail()”的比较就像模板引擎与“echo”的比较。

于 2010-09-09T10:16:08.987 回答