Laravel使用免费的功能丰富的库 SwiftMailer 来发送电子邮件.使用库函数,我们可以轻松发送电子邮件而不会有太多麻烦.电子邮件模板的加载方式与视图相同,这意味着您可以使用Blade语法并将数据注入模板.
下表显示了的语法和属性发送功能
语法 | void send(string | array $ view,array $ data,Closure | string $ callback) |
参数 |
|
返回 | 没有 |
描述 | 发送电子邮件. |
在第三个参数中,$ callback闭包接收了消息实例,并且通过该实例,我们还可以调用以下函数并更改消息,如下所示.
$ message → 主题('欢迎来到教程点');
$ message → 来自('email@example.com','Mr. Example');
$ message → to('email@example.com','Mr. Example');
一些不太常见的方法包括 :
$ message → 发件人('email@example.com','示例先生');
$ message → returnPath('email@example.com');
$ message → cc('email@example.com','Mr. Example');
$ message → bcc('email@example.com','Mr. Example');
$ message → replyTo('email@example.com','Mr. Example');
$ message → 优先级(2);
要附加或嵌入文件,您可以使用以下方法 :
$ message → 附上('path/to/attachment.txt');
$ message → embed('path/to/attachment.jpg');
邮件可以HTML或文本形式发送.您可以通过传递数组来指示要在第一个参数中发送的邮件类型,如下所示.默认类型是HTML.如果要发送纯文本邮件,请使用以下语法.
语法
Mail::send([‘text’=>’text.view’], $data, $callback);
在此语法中,第一个参数采用数组.使用 text 作为视图的键名作为键的值.
示例
步骤1 : 我们现在将从Gmail帐户发送一封电子邮件,您需要在Laravel环境文件 - .env 文件中配置您的Gmail帐户.在您的Gmail帐户中启用两步验证并创建应用专用密码,然后更改.env参数,如下所示.
.env
MAIL_DRIVER = smtpMAIL_HOST = smtp.gmail.comMAIL_PORT = 587MAIL_USERNAME = your-gmail-usernameMAIL_PASSWORD = your-application-specific-passwordMAIL_ENCRYPTION = tls
第2步 : 更改 .env 文件后,执行以下两个命令清除缓存并重新启动Laravel服务器.
php artisan config:cache
步骤3 : 通过执行以下命令创建一个名为 MailController 的控制器.
php artisan make:controller MailController --plain
第4步 : 成功执行后,您将收到以下输出 :
第5步 : 复制以下代码
app/Http/Controllers/MailController.php 文件.
app/Http/Controllers/MailController.php
"Virat Gandhi"); Mail::send(['text'=>'mail'], $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Basic Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Basic Email Sent. Check your inbox."; } public function html_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel HTML Testing Mail'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "HTML Email Sent. Check your inbox."; } public function attachment_email() { $data = array('name'=>"Virat Gandhi"); Mail::send('mail', $data, function($message) { $message->to('abc@gmail.com', 'Tutorials Point')->subject ('Laravel Testing Mail with Attachment'); $message->attach('C:\laravel-master\laravel\public\uploads\image.png'); $message->attach('C:\laravel-master\laravel\public\uploads\test.txt'); $message->from('xyz@gmail.com','Virat Gandhi'); }); echo "Email Sent with attachment. Check your inbox."; }}
第6步 : 复制 resources/views/mail.blade.php 文件中的以下代码.
resources/views/mail.blade.php
Hi, {{ $name }}
lSending Mail from Laravel.
第7步 : 在 app/Http/routes.php中添加以下行.
app/Http/routes.php
Route::get('sendbasicemail','MailController@basic_email');Route::get('sendhtmlemail','MailController@html_email');Route::get('sendattachmentemail','MailController@attachment_email');
第8步 : 请访问以下网址以测试基本电子邮件.
http://localhost:8000/sendbasicemail
第9步 : 输出屏幕看起来像这样.检查您的收件箱以查看基本的电子邮件输出.
第10步 : 访问以下URL以测试HTML电子邮件.
http://localhost:8000/sendhtmlemail
步骤11 : 输出屏幕看起来像这样.检查您的收件箱以查看html电子邮件输出.
第12步 : 访问以下URL以测试带附件的HTML电子邮件.
http://localhost:8000/sendattachmentemail
第13步 : 你可以看到以下输出
注意 : 在 MailController.php 文件中,from方法中的电子邮件地址应该是您可以从中发送电子邮件地址的电子邮件地址.通常,它应该是您服务器上配置的电子邮件地址.