9

我将使用 G Suite(以前称为 Google Apps)来托管一个在单独主机上运行的网站的电子邮件。

但是,网站上有一个联系表,我还没有看,但我认为它会使用标准mail()功能。

据我了解,它mail()仍将使用服务器邮件服务器发送邮件,这可能是一个愚蠢的问题,但我认为这不会因此导致任何垃圾邮件检测问题?就像,我知道如果From和/或Sender标头与来自的服务器不匹配(或者在某些情况下,如果您在这些标头中设置的电子邮件不存在),某些服务器将不接受邮件。

因此,如果邮件托管在 G Suite 上,并且在From/Sender标头中设置的电子邮件地址存在于 G Suite 上,这不会导致任何问题,对吗?

最后,我知道使用 SMTP 通过 Google 发送邮件可能是一个更好的主意,但我可能没有这个选择,所以我想找出上面的答案以防万一。

编辑:根据 Nima 的回答,这是可以避免的,还是只能使用 Google 的 SMTP 服务器发送?

4

3 回答 3

3

如果你想要它简单,那么简单使用SMTP

由于垃圾邮件,多个邮件服务器提供商正在阻止来自未配置正确RDNS(反向 DNS)和 MTA 名称的邮件服务器的邮件。

您要确保所有三个名称都根据您的 MX 记录匹配:

  • 发件人主机名(例如 *mail@demohost.com,请注意from可以是您想要的任何内容
  • MTA-Name/HELO-Hostname(在 Mailserver 中配置,例如 demohost.com)
  • RDNS(基本上它为每个 IP 地址提供主机名(例如 42.42.42.42 -> demohost.com)

还要确保您的 php.ini 对您的邮件服务器具有正确的配置。恭喜您现在可以使用mail(...).

正如我所说,仅使用 SMTP 可能是最简单的。将繁重的工作分配给主持人。

于 2017-08-09T13:10:29.263 回答
0

当您使用 GSUITE 托管电子邮件时,很明显您将向 GSUITE 提供一些域名。

现在,电子邮件根据内容以及发送服务器的证书被标记为垃圾邮件而不是垃圾邮件,并且发送服务器为面向交易和面向营销的电子邮件提供不同的服务。GSUITE 仅提供事务性邮件服务,来自邮件服务的事务性邮件(具有有效证书且未列入黑名单)直接进入收件箱或其他标签,但会进入垃圾邮件/促销。

现在 GSUITE 拥有所有正确的证书,我认为没有任何面向消费者的邮件服务提供商可以阻止来自谷歌服务器的电子邮件。

其他问题:-From Address电子邮件中的标头重要吗?到目前为止,我从未见过 from address 会影响接收服务器的任何内容,但是一些消费者邮件服务会阻止使用 from address 而非帐户电子邮件地址,就像移动运营商不让我们使用别人的 caller id 一样(理想情况下)。但是企业的邮件服务提供商允许您使用任何地址作为from电子邮件标题中的值。

编辑:- 如果您仍然不确定电子邮件的传递,您可以使用 replyTo 标头没有任何问题。

PS:- 我自己用数千封电子邮件对此进行了测试,但使用的是 SendGrid 服务器。

于 2017-08-06T09:05:00.150 回答
0

http://php.net/manual/en/function.mail.php

mail() 的 Windows 实现在许多方面与 Unix 实现不同。首先,它不使用本地二进制文件来编写消息,而仅在直接套接字上运行,这意味着需要 MTA 侦听网络套接字(可以在 localhost 或远程计算机上)。

在 linux 上,sendmail 可执行文件用于与 Windows 上配置的 SMTP 服务器通信,您可以/可以配置mail()函数以使用 SMTP

所以最好的方法是直接使用SMTP发送邮件到Gmail发送邮件。

取自: https ://stackoverflow.com/a/33506709/623150

这是使用 PHP PEAR 的一种方法

// Pear Mail Library
require_once "Mail.php";

$from = '<your@mail.com>'; //change this to your email address
$to = '<someone@mail.com>'; // change to address
$subject = 'Insert subject here'; // subject of mail
$body = "Hello world! this is the content of the email"; //content of mail

$headers = array(
    'From' => $from,
    'To' => $to,
    'Subject' => $subject
);

$smtp = Mail::factory('smtp', array(
        'host' => 'ssl://smtp.gmail.com',
        'port' => '465',
        'auth' => true,
        'username' => 'your@gmail.com', //your gmail account
        'password' => 'snip' // your password
    ));

// Send the mail
$mail = $smtp->send($to, $headers, $body);

如果您使用 gmail smtp,请记住在您的 gmail 帐户中启用 SMTP,在设置下

在 Linux 服务器上,您不能通过邮件功能使用 SMTP。

于 2017-08-08T13:59:53.050 回答