代码之家  ›  专栏  ›  技术社区  ›  blueink

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

  •  1
  • blueink  · 技术社区  · 6 年前

    我有一个问题,使不同的邮件模板。当我收到发件人的邮件时,我想回复一封“谢谢”的邮件给他或她。Sametime我想得到不同类型的tempate电子邮件的详细信息。

    这是我的控制器

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

    <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>
    

    有人能教我怎么回事吗? 我想这将是伟大的,使作为网站管理员模板。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Tim Lewis    6 年前

    改变抄送或密件抄送的属性是不可能的,因为那样会使它成为一个 复印件 . 如果您需要将副本发送到另一个主题不同的地址,则需要将其作为单独的电子邮件发送:

    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

    Mail::send() 功能。