向php电子邮件添加非中断空格不会插入空格

时间:2010-01-19 18:37:26

标签: php html email space

我有这个PHP代码:

mail($email, $subject, 
  "Welcome to **!\n\n The password for your account is:\n $password", 
  $headers);

在php电子邮件内容中添加& nbsp不会插入空格。

我想在冒号和$password之间放置两个空格。有没有办法添加空格?

6 个答案:

答案 0 :(得分:2)

您可以将电子邮件发送为HTML,这需要在邮件正文中添加额外的标题和实际的HTML:

// Add extra headers to $headers
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

// Send mail as HTML
mail($email, $subject, 
  "<html><body>Welcome to **!<br><br> The password for your account is:<br> &nbsp;$password</body></html>", 
  $headers);

答案 1 :(得分:1)

添加<html></html>:表示邮件是HTML格式的。然后,您可以使用&nbsp;

使用nl2br函数将换行符转换为<br/> s。

还可以通过附加标题“Content-Type: text/html; charset=UTF-8”来设置内容类型。

如果您不想使用HTML:您也可以使用制表符\t,但不确定Hotmail是否支持该打印机。

答案 2 :(得分:0)

这实际上取决于您正在阅读它.Winmail的问题在于它将其视为计划文本,但将其转换为最有可能向您显示的HTML。

请看example 4 on how to send html email using php

答案 3 :(得分:0)

如果电子邮件Content-Typetext/plain,则应尊重所有空格。听起来像是在发送电子邮件为text/html,这就是为什么你需要&amp; nbsp来显示第二个空格。

答案 4 :(得分:0)

使用http://swiftmailer.org/类通过PHP发送电子邮件。它做得很好,并为您提供了许多不错的功能。

答案 5 :(得分:0)

在发送邮件时尝试使用'wordwrap',这应该打破电子邮件和 解决问题:

@mail($to, $subject, wordwrap($message), $headers);