2017-04-20 155 views
2

我需要通過mail()php函數發送一封電子郵件。事情是,我不知道該怎麼做:( 我讀過的地方,我必須改變'驅動程序'參數在config/mail.php'sendmail'。如何配置Laravel mail.php使用通用郵件功能?

默認情況下,它看起來像這樣: '司機'=> ENV( 'MAIL_DRIVER', 'SMTP'),

現在,它看起來像這樣: '司機'=> '的sendmail',

還試圖這樣: 'driver'=>'mail',

但是郵件功能仍然不起作用請幫助我 提前致謝)

回答

1

您可以設置郵件配置文件.env像配置

MAIL_DRIVER=smtp 
MAIL_HOST=smtp.gmail.com 
MAIL_PORT=587 
[email protected] 
MAIL_PASSWORD="password" 
MAIL_ENCRYPTION=tls 

還設置配置/ mail.php喜歡:

'from' => ['address' => '[email protected]', 'name' => 'Test'],

那麼你就可以清除緩存:

php artisan cache:clear 
php artisan config:cache 
php artisan cache:clear 
+2

這些都不是使用PHP的mail()函數進行正確的設置。該功能不需要用戶名和電子郵件。如果您想從其他服務器(例如Gmail)發送電子郵件,則使用這些設置。 – wmac

+1

@ wmacYes-謝謝!我和OP有着完全相同的問題,現在我浪費了多少時間,以及這方面的信息有多少,這是令人難以置信的。**您如何使用Laravel 5.5 **使用PHP的mail()函數?可能嗎? *就是那個問題。我總是被告知要更改爲'MAIL_DRIVER = smtp'並輸入我的gmail帳戶憑據,但我不想那麼做!我已經低估了這個,因爲它沒有回答這個問題。 – Inigo

+0

鏈接線程,我基本上要求同樣的事情:https://stackoverflow.com/a/46550390/521392 – Inigo

0

您必須在.env文件中設置郵件配置。在這裏你必須設置所有的郵件驅動程序和所有的細節。 Plase看到這個文檔​​

2

要使用上localhost運行電子郵件服務器,您.env文件應該是這樣的(PHP的mail功能不需要用戶名和密碼)

MAIL_DRIVER=smtp 
MAIL_HOST=localhost 
MAIL_PORT=25 
MAIL_USERNAME= 
MAIL_PASSWORD= 
MAIL_ENCRYPTION=null 

然後,更新配置緩存:

php artisan config:cache 
+1

非常感謝你,朋友!!!我已經搜索了這個答案很長一段時間,這是不好的,laravel官方文檔不提供此信息。你最好,@lbel! – Vaha

0

做一樣的郵件()PHP函數確實,在大多數情況下,你應該以下列方式配置Laravel:

使用sendmail,在.ENV:

MAIL_DRIVER=sendmail 

不需要主機,用戶,密碼,端口和加密。

在這一點上,你可以檢查它是否已經工作,但有時下一步也是需要的。

坐落在配置/ mail.php新.ENV選項:

'sendmail' => env('MAIL_SENDMAIL', /usr/sbin/sendmail -bs) 

坐落在.ENV sendmail的路徑。您可以檢查在的phpinfo sendmail_path(),但通常這一個:

MAIL_SENDMAIL='/usr/sbin/sendmail -t -i'