2015-12-17 173 views
1

我嘗試用Laravel發送郵件,但它不起作用。 我試過Mandrill,mailgun和gmail。 Mandrill返回類似「缺少SPF和DKIM」的消息。用Laravel發送郵件

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
MAIL_USERNAME="my gmail adress" 
MAIL_PASSWORD="my gmail password" 
MAIL_ENCRYPTION=tls 
MAIL_PRETEND=true 

這是我EmailController:

Mail::send('emails.welcome', ['name' => 'Novice'], function($message){ 
    $message->to('f***@gmail.com', 'Fabien')->subject('Bienvenue !'); 
}); 

這是路線:

Route::resource('emails', 'EmailController'); 

我怎樣才能解決呢?

+1

https://mandrill.zendesk.com/hc/en-us/articles/205582267-About-SPF-and-DKIM#set-up-spf-and -dkim爲你的發送域名 –

+0

我已經看過這個頁面,但它不起作用。我在本地主機上工作。 – Swarovski

回答

5

MAIL_PRETEND更改爲false。此選項用於測試發送郵件而不發送。

此外,由於Laravel 5.2的選項pretend將不再存在。

pretend郵件配置選項已被刪除。請使用log郵件驅動程序,該驅動程序執行與pretend相同的功能,並記錄有關郵件消息的更多信息。

瞭解更多:Upgrading to 5.2Mail & Local Development

+0

嗨,我嘗試了錯誤的值,沒有MAIL_PREVEND var但沒有發生任何事情。 – Swarovski

+0

@Swarovski查看'config/mail.php'中的'pretend'鍵,看看那裏有什麼值,舊的Laravel可能在沒有與'.env'文件集成的情況下有'false'或'true'。 –

+0

@Svarowski在目錄'storage/logs'中你應該有日誌文件。嘗試發送電子郵件,然後在'* .log'文件中查看那裏出現的內容。同時嘗試將'debug'設置爲'true'值並檢查發送郵件的返回值('$ mail = Mail :: send(...); var_dump($ mail);')並檢查響應是什麼。默認情況下,SwiftMailer會返回接受發送的收件人數量('swiftmailer/lib/classes/Swift/Mailer.php:74-92')。 –