首页 > 解决方案 > Laravel 5.6 发送邮件到和密件抄送不同的主题和模板

问题描述

我在制作不同的邮件模板时遇到问题。当我收到发件人的电子邮件时,我想回复“谢谢”电子邮件给他或她。Sametime 我想将电子邮件详细信息作为不同类型的模板。

这是我的控制器

class AjaxController extends Controller
{

    public function send(Request $request){

        $data = array(
                        'name'=>$request->name,
                        'email'=>$request->email,
                        'phone'=>$request->phone, 
                        'messagetext'=>$request->message
                    );

  Mail::send('contacttext', $data, function ($message) use ($request){


        $to_email = "myemail@yahoo.co.jp"; // webmaster 
        $to_name  = "webmaster";
        $subject  = "Thank you!";

        $message->subject ($subject);
        $message->from ($request->email, $request->name);
        $message->to ($request->email, $to_name);
        $message->bcc ('webmasteremail@yahoo.co.jp')
        ->from ($request->email, $request->name)
        ->subject ('for web master ');

        if(count(Mail::failures()) > 0){
            $status = 'error';
        } else {
            $status = 'success';
        }    

        return response()->json(['response' => $status]);

    }

}

联系人文本.blade.php

<html>
<head>Thank you! here is your summary</head>
<body>
<p><strong>name:</strong>   {{ $name }}</p>
<p><strong>email:</strong>  {{ $email }}</p>
<p><strong>message:</strong>        {{ $messagetext }}</p>
</body>
</html>

电子邮件发件人可以收到“谢谢”电子邮件。网站管理员也可以接收电子邮件,但标题和主题被覆盖为contacttext模板有人可以教我什么是wearg吗?我认为制作网站管理员模板会很棒。我正在使用 Laravel 5.6

标签: laravel-5

解决方案


无法更改抄送或密件抄送的属性,因为这会使抄送无效。如果您需要将副本发送到具有不同主题的备用地址,则需要将其作为单独的电子邮件发送:

public function send(Request $request){
    $data = array(
        "name" => $request->name,
        "email" => $request->email,
        "phone" => $request->phone, 
        "messagetext" => $request->message
    );

    Mail::send("contacttext", $data, function ($message) use ($request){
        $message->subject("Thank You!");
        $message->to($request->email);
        $message->from(config("mail")["from"]["address"]);
    }

    Mail::send("contacttext", $data, function ($message){
        $message->subject("For Webmaster");
        $message->to("webmasteremail@yahoo.co.jp");
        $message->from(config("mail")["from"]["address"]);
    }

    return response()->json(["message" => "Email Sent!"], 200);
}

config("mail")["from"]["address"]注意:由于邮件是从 Laravel 内部发送的,因此我将其用作发送地址。这可以从配置config/mail.php

此外,为了避免在向前端(源)发送响应之前等待电子邮件发送,请将 response() 移到Mail::send()函数之外。


推荐阅读