Laravel 使用 HTML 元素发送电子邮件
Posted
技术标签:
【中文标题】Laravel 使用 HTML 元素发送电子邮件【英文标题】:Laravel Send Email with HTML Elements 【发布时间】:2015-01-30 11:05:27 【问题描述】:我正在尝试在 Laravel 中使用 SMTP 发送电子邮件,一切都很好,但 html 元素出现在电子邮件正文中。
即,
我收到以下邮件
<h2>Welcome</h2><br><p>Hello user</p><br><p>Thanks</p>
代替
欢迎
你好用户
谢谢
这是我的代码:
我缺少什么使其应用于电子邮件的内容
$msg = "<h2>Welcome</h2><br><p>Hello user</p><br><p>Thanks</p>"
$message->setBody($msg);
$message->to('user@gmail.com');
$message->subject('Welcome Mail');
【问题讨论】:
试试message->setBody($msg, 'text/html');
【参考方案1】:
试试这个……
$msg = "Welcome
Hello user
Thanks"
$message->setBody($msg);
$message->to('user@gmail.com');
$message->subject('Welcome Mail');
【讨论】:
我目前正在使用它,但我不能使用任何 div 或任何 html 标签对吗?.. 甚至没有 :( 当然!如果格式给您带来问题,请删除它!哈哈 你想要你的输出。【参考方案2】:一种可能的解决方案是将 HTML 代码包装在 body 标记中。 也看看Laravel mail api。
【讨论】:
我在那里看到了 标签,但我应该在邮件功能中使用它吗? 我不太确定,但我猜你得到带有 html 标签的 msg 的原因是你的代码没有被包装为 HTML 模板。我建议使用标准 laravel 的方式。使用 html、head 和 body 标签创建一个完整的 html 模板并使用 Mail helper .$info = ['email'=>'user@gmail.com','name'=>'test user'];$data=['标题'=>'测试','信息'=>'测试']; Mail::send('emails.test', $data, function($message) 使用 ($info) $message->from('test@test.com, 'test'); $message->to($ user['email'], $user['name'])->subject('Welcome Mail'); );【参考方案3】:您似乎想以 HTML 格式发送电子邮件:
mail($to, $subject, $message, $headers);
您必须使用$headers
参数。
最后一个参数,标头,对于函数来说是可选的,但在发送 HTML 电子邮件时是必需的,因为我们可以在这里传递 Content-Type 声明,告诉电子邮件客户端将电子邮件解析为 HTML。
Source
或者,如果您只想添加断线并留下 HTML 元素:
$msg = "Welcome \n Hello user \n Thanks"
【讨论】:
以上是关于Laravel 使用 HTML 元素发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章