2014-02-11 105 views
0

我一直在嘗試一段時間讓我的電子郵件發送使用SendGrid。我已經建立了一個測試PHP腳本:SendGrid郵件不發送(網絡和SMTP)

<?php 

require_once('../resources/functions/sendgrid/lib/SendGrid.php'); 
SendGrid::register_autoloader(); 
require_once('../resources/functions/unirest/lib/Unirest.php'); 

$sendgrid = new SendGrid('my_username', 'my_password'); 

$sendgrid_email = new SendGrid\Email(); 
$sendgrid_email->addTo('[email protected]')-> 
       setFrom('Name <[email protected]_domain.co.uk>')-> 
       setSubject('Name | Test Mail')-> 
       setText("TEST MESSAGE"); 
$sendgrid->smtp->send($sendgrid_email); 

echo 'mail sent'; 

?> 

我該使用Web和SMTP方法試過了,這兩種方法得到的「已發送郵件」的回聲,但實際上既沒有出現在我的收件箱,並當我檢查我的SendGrid帳戶時,我仍然發送了0封電子郵件。

編輯:

好了,我懂了工作。刪除了「名稱」,將其更改爲「[email protected]_domain.co.uk」。但是,我想使用第一種方法來定義名稱 - 這樣做的任何方式?

ANOTHER編輯:

好吧,尼克Q的回答固定的我是有問題的其餘部分。對於任何想知道的人來說,你從名字(例如)設置的方式是將setFrom作爲電子郵件[setFrom(「[email protected]」)],然後使用setFromName [setFromName(「Example」)] 。

+0

你是否試圖捕獲' - > send()'調用的返回值?當你沒有確認它實際發送時說'發送'是非常糟糕的。 –

+0

檢查郵件服務器日誌 – 2014-02-11 19:37:39

+0

Marc B,這只是一個測試腳本,所以我不用每次想測試時都註冊一個新用戶。只是想確保它實際上正在腳本的這個階段進行,所以我不在乎它的迴應。 Dagon,你是什麼意思?我無法檢查郵件服務器上的日誌。 – Zer0HD2

回答

0

調用SendGrid::register_autoloader();後也要求Unirest。

否則你的腳本看起來不錯。

+0

謝謝,修復它。 – Zer0HD2