2017-08-04 110 views
5

我將使用G Suite(正式Google Apps)託管運行在單獨主機上的網站的電子郵件。外部託管電子郵件並使用PHP發送電子郵件

然而,有一個接觸的形式在網站上,我還沒看着它,但我認爲它會使用標準mail()功能。

據我所知mail()仍然會使用服務器郵件服務器來發送郵件,這可能是一個愚蠢的問題,但我認爲這不會導致任何垃圾郵件檢測問題,因爲這樣?就像,我知道有些服務器將不接受郵件,如果和/或發件人頭不匹配它是來自服務器(或在某些情況下,如果你在這頭設置的郵箱不存在)。

因此,如果郵件G上套房,託管的電子郵件地址是在從/發件人頭G上存在套房設置,這將不會造成任何正確的問題?

最後,我知道使用SMTP通過Google發送郵件可能是一個更好的主意,但我可能沒有這個選擇,所以我想在上面找到答案。

編輯:按照尼瑪的answer,就是這個東西,是可以避免的,或者只使用Google的SMTP服務器來發送具有?

+0

這是不是https://stackoverflow.com/a/33506709/623150的部分副本,因爲您可以使用SMTP到Gmail從Gmail服務器發送電子郵件 –

+0

@MartinBarker不,請閱讀我對您答案的回覆。我的問題是*不*關於使用SMTP;我談到了這一點,但主要問題是基於設置郵件標題,如果這樣做會導致任何問題。 – Brett

+0

確定如此從您的反饋什麼你想要回答使用'sendmail'或使用SMTP。作爲在'sendmail'只是用作SMTP的前經理的應用程序,他們是你唯一的選擇在PHP,除非你想建立自己的'sendmail'兼容的可執行你的服務器 –

回答

2

如果你想讓它簡單,然後使用簡單SMTP

因爲垃圾郵件,多個郵件服務器提供商是阻止從沒有設定正確RDNS (Reverse DNS)和MTA名稱郵件服務器的郵件。

你要確保所有的三個姓氏是根據您的MX記錄匹配:

另外,還要確保你的php.ini有合作您的郵件服務器的正確配置。恭喜你現在可以使用mail(...)發送郵件。

正如我所說的,它可能只是通過使用SMTP最簡單的。將辛勤的工作分配給託管人。

+0

好吧,所以你基本上說,將「From:」和/或「Sender:」標頭設置爲郵件域可能不是一個好主意,當郵件實際不是郵件域時,GSuite是主機來自谷歌郵件服務器,但如果我想出於任何原因,那麼我必須做你上面解釋的?如果是這樣,那麼是的,SMTP似乎*遠*更容易哈! – Brett

+0

不要混淆「發件人」和「發件人」。看看[這裏](https://stackoverflow.com/questions/4367358/whats-the-difference-between-sender-from-and-return-path)。基本上,發件人主機名是具有MX郵件服務器的主機名。發件人可以有不同的域名,例如您的谷歌地址。但是,是的,爲什麼要維護你自己的郵件服務器,如果你已經有了。每SMTP簡單認證。這是要走的路。 @Brett –

+0

另外請注意,如果這是您不喜歡SMTP的原因,您可以爲發送目的設置一個單獨的電子郵件帳戶,其中包含主要電子郵件帳戶的「發件人」。由於gmail被稱爲重寫這些頭文件,也許你可以使用另一個發件人從屬。通常你在你的域名銷售商有一個電子郵件帳戶?另外,不要改變From也可以改變'Reply-To'。但這只是假設你的問題背後的動機。 @Brett –

0

當您使用GSUITE託管電子郵件,很明顯,你會提供一些域名GSUITE。

基於內容以及發送服務器和發送服務器的證書,現在的電子郵件標記爲垃圾郵件和非垃圾郵件對交易和服務市場的電子郵件不同的服務。 GSUITE只提供交易郵件服務,郵件服務中的交易郵件 - 具有有效證書而非黑名單 - 直接登錄到收件箱或其他標籤,但垃圾郵件/促銷。

現在GSUITE是有正確的證書,我不認爲有任何面向消費者的郵件服務提供商,該塊電子郵件從谷歌服務器的到來。

其他問題: - 電子郵件標題中的From Address是否很重要? 現在,我從未見過地址影響接收服務器上的任何內容,但一些消費者郵件服務阻止了帳戶電子郵件地址以外的其他地址的使用,就像移動運營商不讓我們使用其他人的呼叫者ID一樣(理想情況下) 。 但是,企業的郵件服務提供商讓您使用任何地址作爲電子郵件標題中的from值。

編輯: - 如果你仍然不確定交付的郵件,你可以使用的replyTo有任何問題標題。

PS: - 我已經用數以千計的電子郵件測試過,但使用SendGrid服務器。

+0

設置'From:'標題可以肯定會影響*某些*接收郵件服務器,我曾經一次又一次地看到它有時候人們沒有從他們的聯繫表單中獲取電子郵件,這是因爲'From:'標題已設置爲提交表單的用戶電子郵件,而不是來自發送服務器的電子郵件地址;這就是爲什麼始終使用'Reply-To:'標題總是一個好主意;我看到的另一個問題是一些服務器拒絕來自實際不存在的地址的郵件。 – Brett

+0

@Brett我編輯了我的答案。 –

+0

嗯,是的,我知道我可以使用'reply-to',但因爲我指出一些服務器由於From:和/或Sender:地址不正確而拒絕電子郵件,所以我試圖建立最好的方法這個如果我不能使用SMTP。 – Brett

0

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

Windows實現郵件的()均不同於 UNIX實現多種方式。首先,它不使用局部二元爲 撰寫郵件但僅限於直接套接字操作,這意味着一個 MTA需要偵聽網絡套接字(其既可以在本地主機 或遠程計算機)。

Linux上的sendmail的可執行文件是用來說話的Windows配置的SMTP服務器,你可以/可以配置mail()功能使用SMTP

所以最好的方法是直接使用SMTP發送電子郵件至Gmail發送電子郵件。

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

這是一種使用PHP PEAR做

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

$from = '<[email protected]>'; //change this to your email address 
$to = '<[email protected]>'; // 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' => '[email protected]', //your gmail account 
     'password' => 'snip' // your password 
    )); 

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

如果您使用Gmail SMTP記得啓用SMTP在你的Gmail帳戶, 下設置

在Linux服務器上,你無法通過郵件功能使用SMTP。

+0

感謝您的回答,但我已經知道如何使用SMTP。我的問題是關於使用PHP的'mail'函數和/或sendmail,它會導致gmail的任何問題,認爲來自/發送者的值看起來很腥。 – Brett

+0

更新爲隱藏它,因爲它的工作方式取決於您使用的操作系統 –

+0

SMTP服務器是發送電子郵件的不是PHP,如果您不提供標題,它將不會覆蓋Google Google SMTP服務器上的標題,這樣只會讓它們離開它們失蹤。 –

相關問題