【问题标题】:Laravel Send Email with HTML ElementsLaravel 使用 HTML 元素发送电子邮件
【发布时间】: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-&gt;setBody($msg, 'text/html');

标签: php html email laravel laravel-4


【解决方案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"

【讨论】:

    猜你喜欢
    • 2016-11-03
    • 2015-08-24
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 2018-02-01
    • 1970-01-01
    相关资源
    最近更新 更多