php设置电子邮件用户代理

时间:2009-12-02 16:25:35

标签: php email

我有一个应用程序可以将验证电子邮件发送到人员帐户的电子邮件地址,但有时它会进入他们的垃圾邮件过滤器,在对电子邮件进行分析后,我们发现其中一个原因是因为没有用户代理名称。

有没有办法使用php的默认电子邮件发件人设置?

感谢

4 个答案:

答案 0 :(得分:2)

几年前,我写了一篇详尽的“如果自动生成的邮件被垃圾邮件过滤器吞没了该怎么办”。不幸的是,它是德语版本,但我记得的一个方面就是垃圾邮件过滤器对X-Mailer签名的反应非常挑剔,这些签名指向编程语言/脚本/批量电子邮件程序。您可能想要假装是一个普通的邮件程序,如Outlook,以确保电子邮件通过。

答案 1 :(得分:1)

PHP中唯一的用户代理设置是user_agent,但此设置仅用于HTTP请求。您可以将其他标头传递给mail()函数来完成此操作:

mail(
    'to@example.com',
    'Subject',
    'Message Body',
    "From: from@example.com\r\nX-Mailer: PHP"
);

答案 2 :(得分:0)

您需要设置标识程序的标头。正如您在mail的php手册中所看到的,第四个参数允许您包含标题。 RFC将“Mailer”,“X-Mailer”和“Sender”都标识为代理,因此使用哪一个我将留给您(wikipedia注意到客户端使用X-Mailer)。

一个例子:

$headers = "X-Mailer: MyApp\r\n";
$succcess = mail(€to, $subject, $message, $headers);

答案 3 :(得分:0)

像X-Mailer这样的标题(全部以X-开头)
是额外的标头,并且不定义用户代理标头 您应该定义标题:“User-Agent” 查看您从电子邮件客户端发送的消息来源。