Laravel 5.6发送邮件至和密件抄送不同的主题和模板

时间:2018-09-07 16:00:46

标签: laravel-5

我在制作不同的邮件模板时遇到问题。当我收到发件人发送的电子邮件时,我想回复“谢谢”电子邮件给他或她。 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]);

    }

}

contacttext.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模板 有人可以教给我什么吗? 我认为将其用作网站站长模板将是很棒的。 我正在使用Laravel 5.6

1 个答案:

答案 0 :(得分:1)

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

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);
}

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

配置

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