首页 > 其他分享 >laravel发送邮件并配置发件人信息

laravel发送邮件并配置发件人信息

时间:2022-12-16 15:14:45浏览次数:65  
标签:laravel 发件人 MAIL mail example 邮件 subject

最近要做发送邮件的功能,发送邮件的功能还是比较简单的,可以使用PHPMailer包

<?php
$mail = new PHPMailer\PHPMailer();

try {
    $mail->addaddress('[email protected]');
    $mail->CharSet = 'UTF-8';
    $mail->From = '[email protected]';
    $mail->FromName = "ADMIN";
    $mail->isHTML(true);
    $mail->Subject = 'mail测试';
    $html = <<<html
<h4 style="color: red">邮件测试</h4>
<table border="1px">
    <tr>
    <th>a</th>
        <th>b</th>
        <th>c</th>
        <th>d</th>
    </tr>
    <tr>
        <td>1</td>
        <td>2</td>
        <td>3</td>
        <td>4</td>
    </tr>
</table>
html;
    $mail->Body = $html;
    $mail->send();
} catch (\PHPMailer\Exception $e) {
    print_r($e->getMessage());
}

 然php框架使用laravel5.7 ,还是使用laravel中的发邮件功能,查阅了laravel 关于mail的文档,还是比较简单的

//.env文件配置
MAIL_MAILER=smtp
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=

 根据实际使用的发件邮箱配置,后两项可不配置

#生成可邮寄类
php artisan make:mail OrderShipped
#修改可邮寄类
<?php

namespace App\Mail;

use App\Model\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class OrderShipped extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * 订单实例.
     *
     * @var Order
     */
    public $order;

    /**
     * 创建一个新的消息实例.
     *
     * @return void
     */
    public function __construct(Order $order)
    {
        $this->order = $order;
    }

    /**
     * 构建消息.
     *
     * @return $this
     */
    public function build()
    {
        return $this->from('[email protected]')
            ->subject('subject')
            ->view('emails.orders.shipped')
            ->attach('/path/to/file')
            ->attach('/path/to/file', [
                'as' => 'name.pdf',
                'mime' => 'application/pdf',
            ]);;
    }
}
#resources/views/emails/order/shiped.blade.php

<div>
    Price: {{ $order->price }}
</div>
#发邮件
<?php

use Illuminate\Support\Facades\Mail;

Mail::to('email_address')
    ->send(new OrderShipped($order));

 成功发送邮件了,然后需求要求发件人的名字不要用example,要用Example。继续搜索文档,配置发件人,发现可以用全局的配置,在配置文件 config/mail.php下配置

'from' => ['address' => '[email protected]', 'name' => 'Example'],

 配置完成,收到的邮件发件人的名字依然是example,而不是Example,配置未生效

Laravel之邮件发送 (huati365.com) 这篇文章中 看到了这么一种写法,查看了Mail门面类的源码,发现了还有这几种写法:
@method static void raw(string $text, $callback)
@method static void plain(string $view, array $data, $callback)
@method static void html(string $html, $callback)
@method static void send(\Illuminate\Contracts\Mail\Mailable|string|array $view, array $data = [], \Closure|string $callback = null) 
<?php

use Illuminate\Support\Facades\Mail;

function sendMail($template, $info, $to_addr, $from_addr = '[email protected]', $from_name = 'Example', $subject = '测试')
{
    Mail::send($template, ['info' => $info], function ($message) use ($to_addr, $from_addr, $from_name, $subject) {
        $message->from($from_addr, $from_name);
        $message->to($to_addr);
        $message->subject($subject);
    });
}
可以灵活的设置发件地址,发件人名称,邮件标题,完美的满足了需求。
 

标签:laravel,发件人,MAIL,mail,example,邮件,subject
From: https://www.cnblogs.com/caroline2016/p/16986943.html

相关文章

  • 云原生周刊 | 让 ChatGPT 以电子邮件的方式来解释 KubeSphere
    过去的一周是ChatGPT的狂欢,我猜每一位云原生玩家都很好奇他是如何看待Kubernetes的。咱们不防换个方式来提问,让它使用电子邮件的方式来向别人推荐KubeSphere和OpenF......
  • 邮件安全喜报!Coremail两大方案入选“2022年软件行业典型应用案例”
    12月5日,由中国软件行业协会联合中软国际有限公司、江苏省软件行业协会主办的2022中国程序员节在江苏南京圆满落幕,本次活动聚焦当前我国对数字技术创新及应用发展的现实需求,......
  • Python3实现自动发送邮件
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 公有云-实验三 使用无服务器函数发邮件
    实验三使用无服务器函数发邮件概述在本实验中,我们将会使用腾讯云的消息队列CKafka、无服务器云函数SCF和对象存储COS,实现一个异常日志检测及记录系统。当业务系统中的应......
  • Laravel使用es
    1.es是什么呢?ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口。Elasticsearch是用Java开发的,并作为Apache......
  • Prometheus+Grafana+alertmanager+ 邮件 +钉钉告警
    Prometheus+Grafana+alertmanager+邮件+钉钉告警本文模拟生产环境一ansible部署ansbile部署在线安装yuminstallansible-y离线安装#离线环境,提前在有网络的服......
  • 朴素贝叶斯——实现垃圾邮件分类
    一、贝叶斯定理贝叶斯定理由英国数学家贝叶斯(ThomasBayes1702-1761)发展,用来描述两个条件概率之间的关系,比如P(A|B)和P(B|A)。按照乘法法则,可以立刻导出:P(A∩B......
  • 企业电子邮件安全:如何加密电子邮件及其重要性
    电子邮件加密通过仅允许特定用户访问和阅读您的邮件来帮助保护敏感信息免受黑客或不速之客的侵害。电子邮件加密使用公钥基础设施(PKI)技术(数字身份验证和加密的黄金标准......
  • ELK之Watcher邮件告警
    ELK服务器设置安装邮件发送工具mailxyuminstall-ymailx修改Elasticsearch配置文件vim/etc/elasticsearch/elasticsearch.yml给Elasticsearch添加邮箱配置,在最后面加......
  • SpringBoot整合邮件服务
    SpringBoot整合邮件服务配置登录到QQ邮箱:​​https://mail.qq.com/​​选择账户点击开启SMTP服务:发送短信:发送完,点击我已发送,然后得到密码:POM依赖:<dependency><groupId>o......