laravel自带SMTP邮件发送配置修改

说明

1)实现使用不同邮箱发送邮件,使得邮件发送灵活应用
2)邮件配置文件只有一个,有时需要使用两个邮箱进行发送邮件,这时,需要灵活修改邮件配置信息来实现
3)本例使用laravel框架,php语法

示例

1)单个发件邮箱

邮箱配置文件 mail.php

<?php

return array(
//配置默认的邮件发送驱动
‘driver’ => ‘smtp’,
//邮箱所在主机
‘host’ => ‘smtp.163.com’,
//用于配置邮箱发送服务端口号,比如一般默认值是25,但如果设置SMTP使用SSL加密,该值为465
‘port’ => 25,
//配置项包含address和name,前者表示发送邮箱,后者表示发送邮件使用的用户名
‘from’ => array(‘address’ => ‘11111@163.com’, ‘name’ => ‘发件人’),
//表示加密类型,可以设置为null表示不使用任何加密,也可以设置为tls或ssl
‘encryption’ => ‘tls’,
//表示邮箱账号,比如yang@163.com
‘username’ => ‘发件人’,
//表示上述邮箱登录对应登录密码。注意QQ邮箱的话应该开启POP3|SMTP服务时给的密钥
‘password’ => ‘123’,
//是在设置driver为sendmail时使用,用于指定sendmail命令路径
‘sendmail’ => ‘/usr/sbin/sendmail -bs’,
//当你开发需要发送邮件的应用时,在你本地或开发环境中通常需要禁用邮件发送功能。你可以通过调用Mail::pretend 方法或在 app/config/mail.php 配置文件中设置 pretend 选项为 true 达到这一目的。当邮件发送功能被置为 pretend 模式时,所有邮件都会被写入当前应用的log文件中,而不会发送给收件人
‘pretend’ => false,
);

邮件发送代码片段

//邮件页面数据
$data= array(
‘content’ => ‘欢迎使用邮件发送功能’
);
$title = ‘您收到了一封邮件’;
//传入send方法的第一个参数为生成邮件体所用的视图名
//第二个参数$data是要传入视图的数据
//第三个参数为闭包,允许你为邮件配置各种选项
Mail::send(’emails.send’, $data, function($m) use($title, pathToFile){
//from-发件人;to-收件人,cc-抄送人;attach-附件
$m->from(‘us@example.com’, ‘Laravel’);
$m->to(‘111@163.com’)->subject($title);
$m->attach($pathToFile);
});
1

2)多个发件邮箱

如若此时需要使用另外的邮箱发送邮件,有两种方法
1)直接修改配置文件,则其他地方的邮件发送的发件邮箱也改变了
2)直接使用函数修改配置文件,每次发送邮件时修改,不影响其他的邮件发送

//发送邮件
//修改邮箱配置
Config::set(‘mail.from’, array(‘address’ => ‘654321@163.com’, ‘name’ => ‘发件人’));
Config::set(‘mail.username’, ‘发件人’);
Config::set(‘mail.password’, ‘33133’);
//邮件页面数据
$data= array(
‘content’ => ‘欢迎使用邮件发送功能’
);
$title = ‘您收到了一封邮件’;
//传入send方法的第一个参数为生成邮件体所用的视图名
//第二个参数$data是要传入视图的数据
//第三个参数为闭包,允许你为邮件配置各种选项
Mail::send(’emails.send’, $data, function($m) use($title, pathToFile){
//from-发件人;to-收件人,cc-抄送人;attach-附件
$m->from(‘us@example.com’, ‘Laravel’);
$m->to(‘111@163.com’)->subject($title);
$m->attach($pathToFile);
});

————————————————
版权声明:本文为CSDN博主「kirsten_z」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/kirsten_z/article/details/77005438

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Laravel 中发送邮件非常简单,可以使用内置的邮件服务提供者 Mail,以及支持多种邮件驱动程序(如SMTP、Sendmail、Amazon SES等)。 下面是一个简单的示例,展示如何在 Laravel 中发送电子邮件: ```php use Illuminate\Support\Facades\Mail; use App\Mail\DemoEmail; class DemoController extends Controller { public function sendEmail() { $details = [ 'title' => 'Demo Email', 'body' => 'This is a demo email from Laravel.' ]; Mail::to('[email protected]')->send(new DemoEmail($details)); return "Email sent"; } } ``` 在上面的示例中,我们使用 `Mail` 门面调用 `to()` 方法指定收件人,然后使用 `send()` 方法发送邮件。在 `send()` 方法中,我们传递了一个 `DemoEmail` 类实例,该类是我们定义的一个电子邮件类,它负责构建邮件内容。 以下是一个示例 `DemoEmail` 类: ```php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueue; class DemoEmail extends Mailable { use Queueable, SerializesModels; public $details; public function __construct($details) { $this->details = $details; } public function build() { return $this->subject('Demo Email') ->view('emails.demo'); } } ``` 在上面的示例中,我们定义了一个 `$details` 属性,它持有电子邮件内容的详细信息。然后,我们定义了一个构造函数,它接受 `$details` 并将其赋值给 `$this->details`。最后,我们定义了一个 `build()` 方法,它返回一个邮件视图,并指定了邮件主题。 在 Laravel 中,邮件视图通常存储在 `resources/views/emails` 目录中。例如,在上面的示例中,我们可以创建一个名为 `demo.blade.php` 的视图文件,其中包含电子邮件的内容。 此外,我们还可以通过链式调用方法来添加其他邮件内容,例如添加附件、Carbon副本等。 以上是一个简单的 Laravel 发送邮件的示例。您可以根据自己的需求进行更改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxfamn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值