外部托管的电子邮件和使用PHP发送电子邮件

时间:2017-08-04 07:39:01

标签: php email sendmail google-apps gsuite

我将使用G Suite(正式的Google Apps)来托管运行在单独主机上的网站的电子邮件。

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

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

因此,如果邮件托管在G Suite,,G Suite上存在发件人/发件人标头中设置的电子邮件地址,则不会导致任何问题都正确吗?

最后,我知道使用SMTP通过Google发送邮件可能更好一点,但我可能没有那个选择,所以我想找到上面的答案,只是为了这个。

编辑:根据Nima的answer,这是可以避免的,还是仅使用Googles SMTP服务器发送?

3 个答案:

答案 0 :(得分:3)

如果您想要简单,那么只需使用SMTP

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

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

  • 发件人主机名(例如* mail@demohost.com,note that from can be what ever you want
  • MTA-Name / HELO-Hostname(在Mailserver中配置,例如demohost.com)
  • RDNS(基本上它为每个IP地址提供主机名(例如42.42.42.42 - > demohost.com)

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

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

答案 1 :(得分:0)

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

现在,电子邮件被标记为垃圾邮件,而不是基于内容的垃圾邮件以及发送服务器和发送服务器的证书,它们具有针对Transactional和Marketing Oriented电子邮件的不同服务。 GSUITE仅提供交易邮件服务,来自邮件服务的交易邮件 - 具有有效证书而非黑名单 - 直接登陆收件箱或其他标签,但垃圾邮件/促销。

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

其他问题: - E-MAIL标题中的From Address是否重要? 到目前为止,我从来没有看到地址影响接收服务器上的任何内容,但一些消费者邮件服务阻止使用除帐户电子邮件地址以外的地址,就像移动运营商不允许我们使用其他人一样来电显示(理想情况下)。 但是,邮件服务提供商可以使用任何地址作为电子邮件标题中的from值。

编辑: - 如果您仍然不确定是否发送电子邮件,您可以使用replyTo标头解决任何问题。

PS: - 我已经使用SendGrid服务器对数千封电子邮件进行了测试。

答案 2 :(得分: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。