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

如何在laravel5.4中格式化电子邮件中接收的内容?

  •  0
  • john  · 技术社区  · 6 年前

    在这一刻,它出现在一行这样,只有价值显示出来。

    迈克abc@gmail.com9870000000纽约你好世界

    我在Laravel中用于电子邮件的控制器是:

    Class PostingMessageController extends Controller
    {
        public function create() 
        {
            return view('posting');
        }
    
       public function store(Request $request)
       {
    
    /*
        dd($request->all());
    
      */   
          $this->validate($request, [
          'name' => 'required',
          'email' => 'required|email',
          'number' => 'required',
          'city' => 'required',
          'post' => 'required'
          ]);
    
           Mail::send('emails.posting-message', [
            'msg'=> $request->name . "\r\n"
            . $request->email . "\r\n"
            . $request->number . "\r\n"
            . $request->city . "\r\n"
            . $request->post . "\r\n"
    
    
           ], function($mail) use($request) {
    
              $mail->from($request->email, $request->name);
    
               $mail->to('abc@hellworld.com')->subject('Contact Message');
           });
    
           return redirect()->back()->with('flash_message', 'thank you, your posting info has been sent to our team. we will reach out as soon as we can to provide next steps!');
    
       } 
    }   
    


    字段名在左边,值在右边 . 此时此刻,我只看到上面提到的值。

    Name        Mike
    
    Email       abc@gmail.com
    
    Number      9870000000
    
    City        New York
    
    Post        Hello World 
    
    3 回复  |  直到 6 年前
        1
  •  2
  •   Vipertecpro    6 年前

    如果你想修改你的电子邮件输出,你可能正在寻找一些东西,你可以进入刀片设计,然后发送, 我是这样做的

    在我的路线中:路线/网站.php

    Route::get('contact-us', 'Main@showContactUs')->name('route_name');
    Route::post('contact-us', 'Main@doContactUs')->name('route_name');
    

    在我的控制器中:app/Http/Controllers/主要.php

    use Illuminate\Support\Facades\Mail;
    use App\Mail\SendMailable;
    
    class Main extends Controller
    {
        public function showContactUs()
        {
            $data = [];
            return View::make('pages.contactUs',$data);
        }
        public function doContactUs(Request $r)
        {
         $fullname = $r->get('fullName');
         $phone    = $r->get('phone');
         $email    = $r->get('email');
         $description = $r->get('message');
         Mail::to('RECEIVER_EMAIL_ADDRESS')->send(new SendMailable($fullname, $phone, $email, $description));
          if (Mail::failures())
          {
            $message1 = " Something Went Wrong.";
          }
          else
          {
            $message2 = " Message Sent Successfully.";
          }
        return redirect()->route('route_name'])->with([
                'warning' => $message1,
                'success' => $message2
            ]);
        }
    }
    

    <?php
    namespace App\Mail;
    
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;
    
    class SendMailable extends Mailable
    {
        use Queueable, SerializesModels;
        public $fullname,$phone,$email,$description;
        /**
         * Create a new message instance.
         *
         * @return void
         */
        public function __construct($fullname, $phone, $email,$description)
        {
            $this->fullname = $fullname;
            $this->phone = $phone;
            $this->email = $email;
            $this->description = $description;
        }
        /**
         * Build the message. THIS WILL FORMAT YOUR OUTPUT
         *
         * @return $this
         */
        public function build()
        {
            return $this->view('email.layoutOne')->subject('Contact Us Subject');
        }
    }
    

    最后在Blade:resources/email/布局通.blade.php你可以这样做

    <div>
        <p>Fullname  : {{ $fullname }}</p>
        <p>Phone No. : {{ $phone }}</p>
        <p>Email Address : {{ $email }}</p>
        <p>Description : {{ $description }}</p>
        <hr>
        <p>Thank you for your Query. We'll get back to you within 24 Hours. </p>
    </div>
    

        2
  •  0
  •   Chris Cousins    6 年前
    Mail::send('emails.posting-message', [
        'msg'=> "Name\t" . $request->name . "\r\n"
        . "Email\t" . $request->email . "\r\n"
        . "Number\t" . $request->number . "\r\n"
        . "City\t" . $request->city . "\r\n"
        . "Post\t" . $request->post . "\r\n"
    
    
       ]
    
        3
  •  0
  •   Erubiel    6 年前

    为什么不在视图中以数组和格式传递数据?

    $data = array(
        'name'=> $request->name,
        'email'=> $request->email,
        'number'=> $request->number,
        'city'=> $request->city,
        'post'=> $request->post
    );
    
    Mail::send('emails.posting-message', $data, function($mail) use($request) {
        $mail->from($request->email, $request->name);
        $mail->to('letsruckify@ruckify.com', 'Name')->subject('Contact Message');
    });
    

    您可以以$name或$email的形式访问变量,并在blade视图中实现一些表,如@ViperTecPro的答案中的表

    这是一个例子,你可以这样做。。。具体的html由您决定。

    <div>
        <p>Name  : {{ $name }}</p>
        <p>Email Address :    {{ $email }}</p>
    </div>
    
    推荐文章