【问题标题】:Plain text email next line doesn't work even with "\r\n"即使使用“\r\n”,纯文本电子邮件下一行也不起作用
【发布时间】:2014-05-25 00:32:54
【问题描述】:

这是我在 php 邮件中的代码:

<?php
include_once("Mail.php");

$From = $_POST['enquiryemail'];
$To = $row2['email'];
$Subject = "An enquiry";
$Message = "This enquiry is created by: ".$_POST['enquiryname']."\r\nOrganization: ".$row['orgname']."\r\n Telephone Number: ".$_POST['telenum']."\r\nE-mail address: ".$_POST['enquiryemail']."\r\nMessage: ".$_POST['detail'];
address: ".$_POST['enquiryemail']."\r\nMessage: ".$_POST['detail'];
$Host = "smtp.test.com";
$Username = "";
$Password = "";

$Headers = array ('From' => $From, 'To' => $To, 'Subject' => $Subject);
$SMTP = Mail::factory('smtp', array ('host' => $Host, 'auth' => false,
'username' => $Username, 'password' => $Password));

$mail = $SMTP->send($To, $Headers, $Message);

这是“\r\n”在中间两行不起作用的结果:

此查询由以下人员创建:testing 组织机构:testing 电话:123456 邮箱:test@hotmail.com 消息:测试

知道如何使它起作用吗?谢谢。

【问题讨论】:

  • Outlook 喜欢去除断线。应该有一个选项来显示换行符。您可以使用
    代替它不会被剥离。
  • 显示您用于发送电子邮件的命令(我不愿意假设您已设置内容类型标头)。 PHP_EOL 是运行 PHP 的平台的行尾。
  • 我只是用所有细节更新问题,谢谢。
  • @Annie 您的代码中有语法错误。你能清理一下代码吗?并且,向我们展示与标题一起发送的完整电子邮件来源。
  • 实际消息的来源将有助于诊断。

标签: php email pear pear-mail


【解决方案1】:

您需要专门将内容类型声明为html才能使用html语句

$message_string = "\r\n";
$message_string .= 'Content-Type: text/html; charset=ISO-8859-1"';
$message_string .= "\r\n";
$message_string .= $Message;

现在你的 break 语句将生效。

【讨论】:

  • 这是解决方案吗?
  • 是的,在您的 $Message 变量中,在实际消息本身之前添加 $message_string 内容。这应该有效。
  • 是的以及任何其他基于 html 的样式。
  • 如何在html邮件中添加smpt设置?
  • 就像您对纯文本电子邮件所做的那样
【解决方案2】:

您需要&lt;br&gt; 而不是\r\n,因为您的内容类型是 text/html。 同样的问题:link

【讨论】:

  • 我之前试过
    ,它只是在电子邮件中显示
  • 这封电子邮件没有被指定为 HTML。它甚至没有被正确编码。
猜你喜欢
  • 1970-01-01
  • 2013-04-10
  • 1970-01-01
  • 2010-09-25
  • 2010-11-10
  • 2012-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多