php mail laravel,邮件 - Laravel - 为 WEB 艺术家创造的 PHP 框架。

邮件

配置

Laravel的邮件功能构建于流行的SwiftMailer库之上,并提供了简介、高效的API。邮件配置信息在app/config/mail.php文件中,并提供了包含SMTP主机、端口和证书的配置选项,也可以为发送的邮件配置一个全局from(来自)地址。你可以使用任何的SMTP服务器。如果你希望使用PHP的mail函数来发送邮件,可以通过改变配置文件中的 driver为mail。另外还支持sendmail 。

基本用例

使用Mail::send 方法来发送一封邮件:Mail::send('emails.welcome', $data, function($message)

{

$message->to('foo@example.com', 'John Smith')->subject('Welcome!');

});

传入send方法的第一个参数为生成邮件体所用的视图名。第二个参数$data是要传入视图的数据,第三个参数为闭包,允许你为邮件配置各种选项。注意: $message变量总是会传递到邮件视图中,它允许你给该邮件内容添加内联附件。因此应该避免向视图中传递命名为message的变量。

注解: 内联附件(Inline Attachment):“内联附件”是指可以在邮件体中直接看到的附件,一般是文本或图片;“内联附件”与一般附件的区别在于:一般附件必须在点击之后才能查看。详细信息可以看内联附件与一般附件的区别。

除了HTML视图,你还可以指定一个纯文本视图:Mail::send(array('html.view', 'text.view'), $data, $callback);

或者,你可以通过html或text关键字指定唯一一个视图类型:Mail::send(array('text' => 'view'), $data, $callback);

你还可以为邮件指定其他选项,例如邮件抄送者或者附件:Mail::send('emails.welcome', $data, function($m)

{

$m->from('us@example.com', 'Laravel');

$m->to('foo@example.com')->cc('bar@example.com');

$m->attach($pathToFile);

});

当你为邮件添加附件时,可以指定MIME类型和/或展示名:$m->attach($pathToFile, array('as' => $display, 'mime' => $mime));注意: 传递给Mail::send闭包的消息对象实例继承自SwiftMailer类,因此,你可以调用任何该类的方法来构建邮件内容。

嵌入内联附件

邮件中嵌入图片通常都很麻烦;幸好Laravel提供了很简便的方法来为你的邮件添加图片,并取得相应的CID。

在邮件视图中嵌入内联图像

Here is an image:

<?php%20echo%20%24message->embed(%24pathToFile);%20?>

在邮件视图中嵌入原始数据

Here is an image from raw data:

<?php%20echo%20%24message->embedData(%24data,%20%24name);%20?>

注意$message变量总会通过Mail类传递给邮件视图。

队列邮件

由于发送邮件有可能会使应用程序需要花费较长的响应时间,许多开发者选择将邮件放入队列并在后台发送。Laravel内建了统一队列 API来简化此功能。只需调用Mail类的queue方法就可以将邮件放入队列中:

将一封邮件放入队列中Mail::queue('emails.welcome', $data, function($m)

{

$m->to('foo@example.com', 'John Smith')->subject('Welcome!');

});

你还可以使用later方法指定延迟多少秒再发送邮件:Mail::later(5, 'emails.welcome', $data, function($m)

{

$m->to('foo@example.com', 'John Smith')->subject('Welcome!');

});

如果你想将邮件放到一个指定的队列或"管道" ,可以使用queueOn和laterOn方法:Mail::queueOn('queue-name', 'emails.welcome', $data, function($m)

{

$m->to('foo@example.com', 'John Smith')->subject('Welcome!');

});

邮件 & 本地开发环境

当你开发需要发送邮件的应用时,在你本地或开发环境中通常需要禁用邮件发送功能。你可以通过调用Mail::pretend 方法或在 app/config/mail.php 配置文件中设置 pretend 选项为 true 达到这一目的。当邮件发送功能被置为 pretend 模式时,所有邮件都会被写入当前应用的log文件中,而不会发送给收件人。

启用Pretend模式Mail::pretend();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值