php - 邮件 PHP 是如何工作的?

标签 php email

我今天偶然发现了以下使用 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 运行,你会立即收到一封从 $from 发送到 $to 的电子邮件尽管不需要设置传出/传入服务器。

这让我很感兴趣,因为我的 CMS 使用 SMTP 传出服务器(嗯,与 Mail PHP 的方式相同),我需要使用我的 Outlook SMTP 用户名和密码进行设置 - 某种验证。

但是,关于 Mail PHP 只是.. 发送一封电子邮件。到你设置的地址。从您设置的地址。

查看PHP docs它并没有真正揭示它是如何工作的。 Mail PHP 是否没有任何垃圾邮件问题,因为任何人都可以随时以编程方式向任何人发送任何内容而无需验证 from 身份?

编辑:

评论中的人在谈论美国总统,这很有趣,因为我心里有数:

enter image description here

确实进入了我的垃圾文件夹,但我敢肯定,让它看起来足够有说服力并不难,并且仍然被认为是 “哦,该死的垃圾邮件过滤器丢失了我的电子-邮件!”

最佳答案

mail函数使用 php.ini 中的设置。此配置的详细信息可以在 Mail Runtime Configuration 中找到.

默认值可以在 php.ini 中设置,尽管您可以使用 ini_set 覆盖它们。 .

我打赌您是通过托管服务器上的 PHP 脚本发送邮件的。该服务器可能预先配置了 SMTP 设置。如果您要在 WAMP/LAMP 服务器上本地尝试此操作,则必须自己进行此配置,因为 PHP 无法读取您的 Outlook/WhateverMail 客户端设置。

如评论中所述,您可以自己指定发件人/发件人地址。 SMTP 不要求它是实际的发件人域,所以这就是它起作用的原因。缺少的链接是您主机的预配置 SMTP 服务器。

一些中继服务器会检查这一点,您的邮件可能会被阻止或发送到垃圾邮件文件夹。但是,您可以在您的 DNS 中配置它以指示 <Your server's IP>确实允许为 <yourdomain> 发送电子邮件.有关该主题的更多信息,您可能需要阅读 this question on ServerFault .

关于php - 邮件 PHP 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26912212/

相关文章:

php - 提交时形成 if then Else/ifElse HTML

php - 我想使用 php 和 mysql 向数据库中的每个电子邮件地址发送电子邮件

Python smtplib仅发送消息正文

c# - 以编程方式将文本文件的内容发送到电子邮件地址

c# - Office 365 电子邮件观察器

php - codeigniter 中的 $this->vars($vars) 是什么?

php - laravel 将行插入 mysql 表会导致插入重复行

javascript - PHP header() 不重定向,仅发布重定向页面的 HTML

php - Wordpress PHP 和 HTML5 详解

JavaMail 和 Office 365