使用Laravel Mailer,我们可以从单独的文件发送电子邮件。我们提到文件名是send()
函数的第一个参数。举个例子:
Mail::send('emails.billRequest',$data, function($message){
// rest of code
});
在上面的示例中,emails.billRequest
是我要发送的文件名。这个过程对我很好,没问题。
我的问题是
目前我正在使用Swift Mailer
。我的代码是:
$transport = \Swift_SmtpTransport::newInstance('smtp.email.com',587,'tls')
->setUsername('myemailaddress@email.com')
->setPassword('mypassword');
$mailer = \Swift_Mailer::newInstance($transport);
$message = \Swift_Message::newInstance('test subject')
->setFrom(['sender@email.com'=>'sender'])
->setTo(['reciver@email.com'=>'reciver'])
->setBody('<p>this is a test body</p>','text/html');
$result = $mailer->send($message);
这段代码也很完美。我的问题是,有没有办法将我的电子邮件的正文保存在一个单独的文件中?
在setBody()
内写一封长html电子邮件看起来会很混乱。
答案 0 :(得分:2)
没问题。
而不是:
->setBody('<p>this is a test body</p>','text/html');
使用
->setBody(view('emails.billRequest', $data)->render());
结构:
view('emails.billRequest', $data)->render()
将生成您的Blade文件emails/billRequest.blade.php
并将$data
传递给模板并将其呈现为字符串,以便您现在可以将其用作电子邮件正文
修改强>
当然,如果我是你,我会在不需要时直接使用SwiftMailer
重新考虑。