我今天偶然发现以下脚本使用PHPMail发送电子邮件。
<?php
$to = "some_address@domain.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "my_address@domain.com";
$headers = "From:" . $from;
mail($to, $subject, $message, $headers);
echo "Mail Sent.";
?>
以上内容可以通过php mail.php
运行,即使不需要设置拨出/进入服务器,您也会立即从$to
收到发送给$from
的电子邮件。
它真的很吸引我,因为我的CMS使用SMTP传出服务器(好吧,就像Mail PHP一样),我需要使用我的Outlook SMTP用户名和密码进行设置 - 某种验证。
然而,关于Mail PHP只是...发送一封电子邮件。到您设置的地址。从您设置的地址开始。
看PHP docs它并没有真正揭示它是如何运作的。 Mail PHP没有任何垃圾邮件问题,因为任何人都可以通过编程方式随时发送任何人而无需验证from
身份吗?
编辑:
评论中的人们正在谈论POTUS,这很有趣,因为我记得确切的事情:
它 登陆我的垃圾文件夹,但我确信不难让它看起来足够令人信服且仍被视为"oh damn spam filter lost my e-mail!"
答案 0 :(得分:4)
mail
函数使用php.ini中的设置。可以在Mail Runtime Configuration中找到此配置的详细信息。
可以在php.ini中设置默认值,但您可以使用ini_set
覆盖它们。
我打赌你从托管服务器上的PHP脚本发送了邮件。该服务器可能预先配置了SMTP设置。如果您在WAMP / LAMP服务器上本地尝试此操作,则必须自己进行此配置,因为PHP无法读取您的Outlook / WhateverMailclient设置。
如评论中所述,您可以自己指定发件人/发件人地址。 SMTP不要求它是实际的发件人域,这就是为什么这样做的原因。缺少的链接是主机的预配置SMTP服务器。
某些中继服务器会对此进行检查,并且您的邮件可能会被阻止或发送到垃圾邮件文件夹。但是,您可以在DNS中对此进行配置,以表明确实允许<Your server's IP>
发送<yourdomain>
的电子邮件。有关该主题的更多信息,您可能需要阅读this question on ServerFault。
答案 1 :(得分:0)
它使用smtp协议或send_mail,你甚至可以配置php应该用什么来发送php.ini中的邮件。它可以发送电子邮件,但电子邮件将在您的垃圾邮件过滤器中结束,请查看DKIM和SPF记录以获取更多信息