php mail()函数执行顺序错误

时间:2012-04-16 20:17:50

标签: php email sequence usleep

我有2个邮件功能,如下所示:

mail( $from, '', 'mail1', $headers );
mail( $from, '', 'mail2', $headers );

如果我在$ from中使用我自己的电子邮件地址进行测试,有时我会先收到mail1,有时候会先收到mail2。我想先收到mail1。我尝试在两个邮件功能之间放置一个睡眠,但它没有用。

2 个答案:

答案 0 :(得分:6)

你做不到。您收到邮件的顺序并不取决于您。邮件可能需要很多路径,并且在此过程中会在任何SMTP服务器上延迟。

您可以做的最好的事情就是伪造日期标题,使一封电子邮件看起来比另一封电子邮件早一分钟发送。大多数邮件客户端将按发送日期订购它们。不过要小心,不要太过分了。垃圾邮件发送者使用相同的策略,电子邮件提供商也知道这一点。

答案 1 :(得分:1)

执行mail功能后,电子邮件的实际传送将留给邮件服务器。也就是说,在从服务器/ PHP代码释放对电子邮件的控制之后,您无法控制哪个首先出现在收件箱中。

阅读Mail Transfer Agents及其运作方式。