[英]laravel 5.2 e-mail not delivered no exception
我試圖在laravel 5.2(從5.2升級)中重置密碼,並向我的郵件發送密碼令牌(使用laravels 5.2 new make:auth)。
我的.env文件
APP_ENV=local
APP_DEBUG=true
APP_KEY=xxxxxxxxxxxxxxxxxxxxxxxxx
DB_HOST=localhost
DB_DATABASE=xxxxxxxxxx
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
MAIL_DRIVER=smtp
MAIL_HOST=xxxx.xxxxxx.xx
MAIL_PORT=25
MAIL_USERNAME=xxxx@xxxxxx.xx
MAIL_PASSWORD=xxxxxxxxxxxxx
MAIL_ENCRYPTION=tls
我在mail.php中配置了這一行
'from' => ['address' => 'xxx@xxx.com', 'name' => 'xxx'],
起初它給了例外,因為我沒有使用正確的憑據/設置。 該錯誤消失了。
a)我如何檢查郵件是否已發送? b)我如何檢查未交付的原因? c)我做錯了什么?
我不確定確切的問題是什么,但是我會給您我的工作代碼(也使用5.2),然后您可以檢查我們的代碼之間是否存在不同之處:
.ENV
MAIL_DRIVER=smtp
MAIL_HOST=asmtp.unoeuro.com
MAIL_PORT=587
MAIL_USERNAME=hello@google.com
MAIL_PASSWORD=********
MAIL_ENCRYPTION=tls
確保您的郵件服務器正在使用TLS,或禁用它。 他們通常會告訴他們是否接受tls加密。
mail.php
'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'asmtp.unoeuro.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => "hello@google.com", 'name' => "Hello World"],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
設置帶有控制器的視圖,並在控制器中對其進行硬編碼,以便在您訪問視圖時,將運行以下代碼:(請記住分配$ thename和$ theemail或對其進行硬編碼
use Mail;
$mailvar = ['name' => $thename, 'email' => $theemail];
Mail::send('Mailtemplate.view', ['mailvar' => $mailvar], function ($message) use ($mailvar) {
$message->from('noreply@google.com', 'google.com');
$message->to($mailvar['email'], $mailvar['name'])->subject('You recieved a message');
});
記住要創建視圖Mailtemplate.view,在其中顯示郵件。 您可以在視圖中將$ name和$ email用作變量。
您的mailtemplate應該看起來像這樣:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<style type="text/css" media="screen">';
</style>
</head>
<body>
Name: {{ $mailvar['name'] }}
Email: {{ $mailvar['email'] }}
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.