我尝试发送电子邮件目前工作正常。但是一旦我添加了这一行就不再发送电子邮件了。
$headers = "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail("anton@sci5.com", $subject, $message, $from, $headers )
基本上,当我向$headers
添加mail();
时,它无法正常工作,但如果我删除了$header
,它会发送我的邮件但是html没有呈现。
我做错了什么?
这是我的代码。
$subject = "E-newsletter Signup";
$message = "$todayis [EST] \n
From: $firstname $lastname ($email)\n
$firstname $lastname has subscribe for the ff. e-newsletters:\n
" ;
if (!empty($ivpump1)) { $message .= "$ivpump1\n"; }
if (!empty($fetal1)) { $message .= "$fetal1\n"; }
if (!empty($biomed1)) { $message .= "$biomed1\n"; }
$message.= "<br /><br /><br />
<p><b>From Webpage :</b> $fromWebpage </p>
<p><b>From Google Keyword :</b> $refKeyword</p>
<p><b>Referring Page :</b> $refPage</p>
<p><b>From IP Address :</b> $endUserIP</p>";
$from = "From: $email\r\n";
$headers = "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail("anton@gmail.com", $subject, $message, $from, $headers );
header("Location: http://www.site.com/thank-you-settings.html");
答案 0 :(得分:0)
您需要查看邮件功能http://www.php.net/manual/en/function.mail.php
的签名是mail($to,$subject,$message, $headers)
。你正在调用它。
$headers
需要:
$headers = "From: me@me.com\r\n";
$headers .= "Content-Type: text/html; charset=utf-8\r\n";
答案 1 :(得分:0)
'header'和'from'必须是同一个变量的一部分,试试这个:
<?php
$mime_boundary=md5(time());
$headers .= 'From: My Email <me@company.com>' . "\n";
$headers .= 'MIME-Version: 1.0'. "\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$mime_boundary."\"". "\n";
$msg .= "--".$mime_boundary. "\n";
$msg .= "Content-Type: text/plain; charset=iso-8859-1". "\n";
$msg .= "Content-Transfer-Encoding: 7bit". "\n\n";
$msg .= $textmessage . "\n\n";
$msg .= "--".$mime_boundary. "\n";
$msg .= "Content-Type: application/pdf; name=\"".$filename."\"". "\n";
$msg .= "Content-Transfer-Encoding: base64". "\n";
$msg .= "Content-Disposition: attachment; filename=\"".$filename."\"". "\n\n";
$msg .= chunk_split(base64_encode($doc)) . "\n\n";
$msg .= "--".$mime_boundary."--". "\n\n";
mail("anton@sci5.com", $subject, $msg ,$headers );
?>
在您发送PDF的示例中,您可以发送图片或任何其他文件,只需发送正确的"Content-Type:
类似申请/ pdf for pdf
答案 2 :(得分:0)
尝试在引号中From: $from\r\n
之前的标题中添加Content-Type
,并在调用mail函数时删除from
参数。除非你在php.ini中设置默认的from
,或者使用additional_parameters
参数(第五个),如果要设置'from'值,该函数有四个必需参数,最后一个其中headers
。您的from
似乎满足headers
参数的要求,但是一旦添加第五个参数,您就错误地使用了该函数。
答案 3 :(得分:0)
更正邮件的签名功能。
mail($to,$subject,$message, $headers)
$ header需要:
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
使用php的Html电子邮件的一个很好的例子: http://css-tricks.com/sending-nice-html-email-with-php/
如果html渲染现在不起作用,那么原因是:
很遗憾,许多电子邮件客户端都不尊重标头中的html或css文件。 一切都需要内联。 gmail和outlook也会出现此问题。