【问题标题】:Line break html Email换行 html 电子邮件
【发布时间】:2016-05-23 12:43:20
【问题描述】:

论坛新手,尝试编写一些代码来帮助一个似乎无法正确解决此问题的朋友..

话虽如此,我最初遇到无法发送电子邮件的网站上的联系表问题。在网上搜索了一下并在这里和那里添加了一些组件后,它终于可以工作了,但是现在我还有一个问题..

当电子邮件通过(这是一个商业网站并从那里向相关销售部门等发送电子邮件)发送时,它全部排成一行,看起来很糟糕..

像这样-

“名称:来自网站的测试电子邮件电话:011 937 0572电子邮件: myemail@zmail.comMessage: 测试请确认

测试 38"

我无法找到的是如何分隔文本,以便它像这样在电子邮件中以单独的行形式出现-

姓名:客户

电话:011 000 0000

邮箱:myemail@zmail.com

消息:这里有文字等

我已将联系表格链接到一个 .php 文档,所以我认为需要在此文档中进行更改?我试图添加<br /> & <div>,但除了在我尝试从网站发送表单时给我一条错误消息外,什么都不做。

这里是contactgenie.php 的代码,链接到100% 有效的联系表单

<?php

$EmailFrom = "myeamail@zmail.co.za";
$EmailTo = "myemail@zmail.co.za";
$Subject = "Company Name - Online Enquiry";
$Name = Trim(stripslashes($_POST['Name']));
$Tel = Trim(stripslashes($_POST['Tel']));
$Email = Trim(stripslashes($_POST['Email']));
$Message = Trim(stripslashes($_POST['Message']));

// validation
$validationOK=true;
if (!$validationOK) {
  print "There has been an error, please make sure you entered a correct email address."; // You can edit this to your own error message
  exit;
}

// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "";
$Body .= "Tel: ";
$Body .= $Tel;
$Body .= "";
$Body .= "Email: ";
$Body .= $Email;
$Body .= "";
$Body .= "Message: ";
$Body .= $Message;
$Body .= "";

// send email
$success = mail($EmailTo, $Subject, $Body, $Headers = "From: <$EmailFrom\r\n");

// redirect to success page
if ($success){
  print "Thank you, your email has been sent! We will be in touch shortly!"; // You can edit this to your own success message
}
else{
  print "There has been an error, please make sure you have entered your details correctly."; // You can edit this to your own error message
}
?>

对此的任何帮助将不胜感激,谢谢 狄龙

【问题讨论】:

  • 你可以简单地使用换行符(\n)。例如$Body .= "\n";
  • @noushidp 不!一个广泛传播的错误。您确实 not 想要自动使用执行代码的任何系统使用的行尾,因为电子邮件标准是静态的,并且 not 会根据您使用的系统神奇地改变更改电子邮件来源。
  • 这确实有效...我首先尝试了其他 cmets 中的所有其他方法,但没有一个有效,我要么从网站本身收到错误,要么代码最终会出现在电子邮件本身中.添加了“\n”并完美运行谢谢

标签: php html email


【解决方案1】:

您可以使用双引号内的标准换行符预先格式化邮件正文,如下所示:

$Body = "
    Name: {$Name}
    Tel: {$Tel}
    Email: {$Email}
    Message: {$Message}";

要实现双倍行高,请在行之间插入另一个回车:

$Body = "
    Name: {$Name}

    Tel: {$Tel}

    Email: {$Email}

    Message: {$Message}";

【讨论】:

    【解决方案2】:

    感谢大家的帮助!我让它工作了,我在代码中添加了“\ n”,它工作得很好,我只需要它来分隔文本,这样当电子邮件从网站传来时更容易阅读,再次感谢真的帮助了我有了这个!

    【讨论】:

      【解决方案3】:

      添加&lt;br/&gt; 标记以使用您的变量添加新的行空间

         $Body = "";
      $Body .= "Name: ";
      $Body .= $Name.'<br/>';
      

      以及您想要添加新行空间的其他任何地方 为此,您必须采用 HTML 格式 因为有两种类型的电子邮件 html 和richtext。也要注意这一点。

      【讨论】:

      【解决方案4】:

      不确定这是否可行,但如果是 HTML 电子邮件,这应该可行。

      $Body .= '<html><body>';
      $Body .= "Name: ";
      $Body .= $Name;
      $Body .= "<br>";
      $Body .= "Tel: ";
      $Body .= $Tel;
      $Body .= "<br>";
      $Body .= "Email: ";
      $Body .= $Email;
      $Body .= "<br>";
      $Body .= "Message: ";
      $Body .= wordwrap($Message, 50);
      $Body .= '</body></html>';
      

      该消息可能有效,也可能无效。在这方面不要抱太大希望。

      【讨论】:

      • 正确。我们同时发布了
      • 试一试,但它只是在邮件中添加了无用的文本
      • 姓名:来自网站的测试电子邮件
        电话:011 708 34582
        电子邮件:asdda@gmail.com
        消息:测试请确认测试 001正文>
      【解决方案5】:

      添加&lt;br/&gt; 标记以使用您的变量添加新的行空间

      $Body  = "Name   : " $Name    ."<br/>";
      $Body .= "Tel    : " $Tel     ."<br/>";
      $Body .= "Email  : " $Email   ."<br/>";
      $Body .= "Message: " $Message ."<br/>";
      

      【讨论】:

        【解决方案6】:

        不要使用break标签,它不起作用。您可以轻松地使用“\r\n”作为换行符

        $Body = "Name : ". $name ."\r\n"."Email : " . $email ."\r\n"."Contact : " . $contact;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-07-08
          • 2012-03-31
          • 2013-01-19
          • 2012-04-02
          • 1970-01-01
          • 1970-01-01
          • 2018-04-09
          相关资源
          最近更新 更多