如何在使用Laravel发送之前编辑电子邮件正文

时间:2015-11-20 09:44:23

标签: php email laravel-5 smtp

我已经生成了电子邮件功能,它使用laravel向多个人发送电子邮件。

现在我想生成一个编辑窗口,以便我可以编写电子邮件正文,就像在Gmail中一样,如果我们发送邮件,我们首先编辑正文并点击发送邮件。

所以,如果有人知道如何实现这一点,请发表评论。

3 个答案:

答案 0 :(得分:1)

应该像

一样简单
Mail::send([], array('yourValue' => $yourValue), function($message) use ($yourValue) {
    $MailBody = 'Your Custom Body';
    $message->setBody($MailBody, 'text/html');
    $message->to('yourtoaddress@yourdomain.com');
    $message->subject('Your Custom Subject');
    });

答案 1 :(得分:0)

虽然我自己对Laravel相当新,但我可以尝试帮助你解决这个问题。首先,在Routes.php文件中设置路由。例如,

Route::get('myapp/sendEmail', 'EmailController@returnComposeEmail');
Route::post('myapp/sendEmail', 'EmailController@sendEmail');

访问时的第一条路线应该向用户返回一个视图,他可以在那里撰写他的电子邮件。这基本上是一种表单,当用户点击“发送”时,POST方法会提交该表单。按钮。第二种方法是针对该方法收集提交的数据并使用它然后发送电子邮件。

如果按照我提供的路线进行操作,您应该有一个名为EmailController.php的控制器文件,其中包含以下方法:

public function returnComposeEmail()
{
return view('pages.ComposeEmail');
}
public function sendEmail(Request $input)
{
    $input = $input->all();
    $dataArray = array();
    $dataArray['emailBody'] = $input['emailBody'];
    $to = $input['to'];
    $subject = $input['subject'];
    Mail::send('email.body', ['dataArray' => $dataArray], function ($instance) use ($to, $subject)
        {
            $instance->from(env('MAIL_USERNAME'), 'Your Name Here');
            $instance->to($to, 'Recipient Name');
            $instance->subject($subject);
            $instance->replyTo(env('MAIL_REPLY_TO', 'some@email.id'), 'Desired Name');
        });
}

您可以按原样使用$dataArray文件中的email/body.blade.php或根据您的要求使用。{/ p>

如果我可以提供帮助,请告诉我。 : - )

答案 2 :(得分:0)

控制器:

    public function showForm(Request $request )
    {
        //Get Content From The Form
        $name = $request->input('name');
        $email = Input::get('agree');
        $message = $request->input('message');

        //Make a Data Array
        $data = array(
            'name' => $name,
            'email' => $email,
            'message' => $message
        );

        //Convert the view into a string
        $emailView = View::make('contactemail')->with('data', $data);
        $contents = (string) $emailView;

        //Store the content on a file with .blad.php extension in the view/email folder
        $myfile = fopen("../resources/views/emails/email.blade.php", "w") or die("Unable to open file!");
        fwrite($myfile, $contents);
        fclose($myfile);

        //Use the create file as view for Mail function and send the email
        Mail::send('emails.email', $data, function($message) use ($data) {
            $message->to( $data['email'], 'Engage')->from('stifan@xyz.com')->subject('A Very Warm Welcome');
        });
//        return view();
    }

路线:

Route::post('contactform', 'ClientsController@showForm');
Route::get('/', 'ClientsController@profile');

视图 contactemail 包含要发送的数据,以及我们通过邮件功能发送的视图电子邮件。当用户在表单中放入数据时,由于这些代码行,该数据将保存在 email.blade.php 中:

//Convert the view into a string
        $emailView = View::make('contactemail')->with('data', $data);
        $contents = (string) $emailView;

        //Store the content on a file with .blad.php extension in the view/email folder
        $myfile = fopen("../resources/views/emails/email.blade.php", "w") or die("Unable to open file!");
        fwrite($myfile, $contents);
        fclose($myfile);