laravel 5.3 메일 보내기 확장 : 사용자 정의 데이터베이스 메일 로그 Laravel 5.3은 다양한 인기있는 서비스를 통해 이메일을 구성하고 보내는 쉬운 방법을 제공하며 개발을위한 로그 보조 프로그램이 포함되어 있습니다. 그러나 사용 가능한 모든 서비스를 다루는 것은 아니며 기존 메일 드라이버 시스템의 확장이 필요할 수 있습니다.
키 포인트 :
상위 메소드를 호출하기 전에 수표를 수행하고 전송 관리자 를 반환하는 것입니다.
메소드는 항상 수신자 이메일과 이름의 연관 배열을 반환합니다. 우리는
Laravel 5.3 (FAQ)에서 메일 로깅에 대한 FAQ
디렉토리에 저장됩니다.
IlluminateMailMailServiceProvider
뷰를 사용하여 웹 사이트의 새로 등록 된 사용자에게 이메일을 보냅니다. Laravel 5.3에서 우편으로 사용하면 더 쉬워집니다 (그러나 이전 구문은 여전히 유효합니다). register
config/app.php
config/mail.php
db
이를 달성하는 선호하는 방법은 응용 프로그램과 상호 작용하고 시작시 서비스를 등록 할 수있는 서비스 제공 업체를 작성하는 것입니다. 먼저 Artisan Command Line Assistant를 사용하여 새로운 서비스 제공 업체를 생성합시다.
폴더에서 새로운 클래스를 생성합니다. Laravel Service 제공 업체에 익숙하다면 클래스를 확장하고 <code class="language-php">Mail::send('emails.welcome', ['user' => $user], function ($m) use ($user) {
$m->to($user->email, $user->name)->subject('Welcome to the website');
});</code> 및 메소드를 정의했음을 알 수 있습니다. 문서에서 제공자에 대한 자세한 내용을 읽을 수 있습니다. boot
register
메소드는
구성 값에 따라 해당 전송 드라이버를 반환합니다. 여기서 할 수있는 일은 IlluminateMailMailServiceProvider
register
전송 관리자 사용
<code class="language-bash"># 生成一个新的可邮件类
php artisan make:mail WelcomeMail</code>
registerSwiftMailer
mail.driver
클래스에는 registerSwiftMailer 인스턴스가 필요하며, 클래스를 확장하여 만족할 수 있습니다. 이렇게 보일 것입니다.
<code class="language-php">// app/Mail/WelcomeMail.php
class WelcomeUser extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->view('emails.welcome');
}
}</code>
메소드입니다. 메일 전송 논리를 담당하며,이 경우 이메일을 데이터베이스에 로그인해야합니다. 우리의 생성자는 외부 종속성이 필요하지 않기 때문에 지금은 비워 둘 수 있습니다.
swift.mailer
함수를 사용하여 이메일 목록을 얻은 다음 통합하여 문자열을 얻습니다. <code class="language-php">// routes/web.php
Route::get('/', function () {
$user = User::find(2);
\Mail::to($user->email)->send(new WelcomeUser($user));
return "done";
});</code>
IlluminateMailTransport
우리의 마이그레이션에는 이메일 본문, 주제 및 수신자 이메일 만 포함되지만 필요에 따라 자세한 내용을 추가 할 수 있습니다. 사용 가능한 필드 목록을 보려면 LogTransport
SparkPostTransport
배열에 추가하려면 새 모델을 만들어야합니다. <code class="language-php">Mail::send('emails.welcome', ['user' => $user], function ($m) use ($user) {
$m->to($user->email, $user->name)->subject('Welcome to the website');
});</code>
<code class="language-bash"># 生成一个新的可邮件类
php artisan make:mail WelcomeMail</code>
이메일 보내기
config/app.php
그런 다음 파일에 메일 드라이버를 <code class="language-php">// app/Mail/WelcomeMail.php
class WelcomeUser extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
public function build()
{
return $this->view('emails.welcome');
}
}</code>
config/mail.php
db
<code class="language-php">// routes/web.php
Route::get('/', function () {
$user = User::find(2);
\Mail::to($user->email)->send(new WelcomeUser($user));
return "done";
});</code>
<code class="language-bash">php artisan make:provider DBMailProvider</code>
php artisan tinker
emails
메소드를 사용하여 메일 드라이버에 사용자 정의 기능을 추가 할 수 있습니다.
옵션을
로 설정할 수 있습니다. 이것은 Laravel에게 모든 발신 이메일을 기록하도록 지시합니다. 로그는 Laravel의 메일 로그는
메소드를 재정의하여 수행 할 수 있습니다. 이 방법에서는 로그 메시지의 형식을 지정할 수 있습니다. log
및
위 내용은 Laravel 5.3에서 메일 로깅 : 메일 드라이버를 연장합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!