라라벨은 5.4 버전부터 이메일 전송을 위한 마크다운 형식을 지원합니다. 오늘 5.5 버전에서 사용해 보았는데 아주 사용하기 쉽다고 느꼈습니다.
아래 단계를 따르면 성공할 수도 있습니다. 지금 시도해 보세요!
마크다운 템플릿 만들기
php artisan make:mail Activate --markdown=emails.activate
이 명령을 실행하면 Activate.php 파일이 app/mail 디렉터리에 생성됩니다.
namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; use App\Models\ActivateModel; class Activate extends Mailable { use Queueable, SerializesModels; private $activate; /** * Create a new message instance. * * @return void */ public function __construct(ActivateModel $activate) { $this->activate = $activate; } /** * Build the message. * * @return $this */ public function build() { return $this->markdown('emails.activate')->with('activate', $this->activate); } }
그리고 템플릿 파일은 resources/views/emails/activate.blade에 생성됩니다. .php:
@component('mail::message') # 欢迎注册使用 Laravel 点击下面按钮进行激活。 @component('mail::button', ['url' => 'http://www.laravel.com']) 激活 @endcomponent Thanks,<br> {{ config('app.name') }} @endcomponent
사서함 구성
구성은 .env 파일에서 수행됩니다. 여기서는 163 사서함을 예로 사용합니다.
MAIL_DRIVER=smtp MAIL_HOST=smtp.163.com MAIL_PORT=25 MAIL_USERNAME=账号 MAIL_PASSWORD=密码 MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=全局发件人地址 MAIL_FROM_NAME=全局发件人名称
Send call
필요한 경우 이메일을 보내려면 Activate를 도입하고 Mail Facade의 to 메소드를 사용하여 테스트를 위한 간단한 경로를 만듭니다:
# routes/web.php Route::get('sendEmail', 'IndexController@sendEmail'); ``` ```php # app/Http/Controllers/IndexController.php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Mail; use App\Mail\Activate; class IndexController extends Controller { public function sendEmail() { // ... code // 调用方式 Mail::to('demo@example.com')->send(new Activate($activate)); } }
테스트 실행
프로젝트 루트 디렉토리에서 명령 실행:
php artisan serve
서버를 시작한 후 브라우저를 열고 서버에 URL http://localhost:8000/sendEmail을 입력한 후 보내는 메일함에서 이메일을 받았는지 확인하세요.
관련 권장 사항:
위 내용은 Laravel5.5에서 이메일 코드 전송의 마크다운 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!