2016-02-12 130 views
0

新的论坛,并试图在我的手一些编码,以帮助一个朋友,谁不能似乎得到这个权利..换行HTML电子邮件

他这样说,我本来具有的接触形式问题在网站上无法发送电子邮件。经过在网上搜索一下,并在这里和那里添加几个组件后,它终于工作,但现在我有一个额外的问题..

当电子邮件发送通过(这是一个商业网站,它发送电子邮件从这里到相关销售部门等)的所有塞进一条线,看起来可怕..

喜欢这个 -

“姓名:TEST的电子邮件WEBSITETel:011 937 0572Email: myemail @ zmail .comMessage:TEST PLEASE CONFIRM

测试38"

什么,我一直没能找到的是如何单独的文本,以便它在一封电子邮件中谈到通过作为单独的线像这个 -

名称:客户

电话:011 000 0000

电子邮件:[email protected]

消息:这里的文字等

我已经将联系表单链接到一个.php文件,所以我会假定它是在这个文件中,需要发生的变化?我试图添加<br /> & <div>,但除了给我一个错误消息,当我尝试从网站发送表单时,都没有做任何事情。

这里是链接到该工程100%

<?php 

$EmailFrom = "[email protected]"; 
$EmailTo = "[email protected]"; 
$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 
} 
?> 

任何帮助,将不胜感激的联系方式为contactgenie.php代码,感谢 狄龙

+4

增加新的生产线空间,你可以简单地使用新行字符(\ n)的。例如'$ Body。=“\ n”;' –

+1

@noushidp不!广泛的错误。您不希望自动使用由执行代码的任何系统所使用的行结尾,因为电子邮件标准是静态的,并且根据您更改电子邮件来自哪个系统,_not_会发生奇迹般的变化。 – arkascha

+1

这实际上工作...我先尝试其他评论中的一切,但没有一个工作,我要么从网站本身得到一个错误,要么代码只会在电子邮件本身结束。添加“\ n”并完美地工作,谢谢 – Dillon

回答

0

添加<br/>标签添加新的行空间与你的变量这样的

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

和其他任何地方你想添加新的行空间 为此,您必须使用HTML格式 ,因为有两种类型的电子邮件html和richtext。也照顾那个。

+1

然后,他还应该包括''标记。请参阅http://stackoverflow.com/questions/11238953/send-html-in-email-via-php – Qirel

+0

格式化此类带HTML开销的消息绝对没有意义。 _做什么的_ ? – arkascha

+0

我试过
标签,当我把它放入 – Dillon

0

不知道这是否工作,但如果它是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>'; 

该消息可能或可能不起作用。不要把你的希望寄托在那一方。

+0

时,它出现了来自网站的错误信息。相同的评论适用于@ FahadAbdullah的答案... – arkascha

+0

正确。我们张贴在同一时间 – Andreas

+0

了这是一个尝试,但它只是徒然增加了文本邮件 – Dillon

1

你可以使用双引号内的标准换行符这样的预格式邮件正文:

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

为了更好地实现双行高你插入线之间的另一种回报:

$Body = " 
    Name: {$Name} 

    Tel: {$Tel} 

    Email: {$Email} 

    Message: {$Message}"; 
1

感谢您的帮助!我得到它的工作,我在代码中添加了“\ n”,它完美地工作,我只是需要它来分离文本,以便从电子邮件通过网站时更容易阅读,再次感谢我帮助我有了这个!

0

添加<br/>标签与您的变量这样

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