0

我正在尝试发送一封电子邮件,目前工作正常。但是一旦我添加了这一行,它就不会再发送电子邮件了。

$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");
4

4 回答 4

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";
于 2013-06-19T03:09:24.220 回答
0

'headers' 和 '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: 的application / pdf for pdf

更多信息:http ://rob.sun3.org/archives/107

于 2013-06-19T03:12:56.927 回答
0

尝试在引号From: $from\r\n之前添加标题,并在调用邮件函数时Content-Type去掉参数。from除非你from在 php.ini 中设置了默认值,或者使用additional_parameters参数(第五个),如果你想设置 'from' 值,函数有四个强制参数,最后一个是headers. 您似乎from满足了headers参数的要求,但是一旦添加了第五个参数,您就错误地使用了该函数。

于 2013-06-19T03:13:08.367 回答
0
  1. 正确的邮件签名功能。

    mail($to,$subject,$message, $headers)
    
  2. $header 需要是:

    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    
  3. 带有 php 的 Html 电子邮件的一个很好的例子:http: //css-tricks.com/sending-nice-html-email-with-php/

  4. 如果 html 渲染现在不起作用,那么原因是:

    不幸的是,许多电子邮件客户端不尊重标题中的 html 或 css 文件。一切都需要内联。gmail和outlook也会出现这个问题。

于 2013-06-19T03:23:16.877 回答