在PHP代码中包含HTML电子邮件模板

在PHP代码中包含HTML电子邮件模板,php,html-email,Php,Html Email,我有一个非常好看的HTML模板,我现在需要在我的邮件系统中实现它。我目前正在使用此功能发送电子邮件: $to = $dbuser; $subject = "Welcome"; $from = "support@mysite.com"; $headers = "From: $from"; $server = ""; ini_set ("SMTP", $localhost); $url=""; $msg="$url"; $body = Example Text! mail($to

我有一个非常好看的HTML模板,我现在需要在我的邮件系统中实现它。我目前正在使用此功能发送电子邮件:

$to   = $dbuser;
$subject = "Welcome";
$from = "support@mysite.com";
$headers = "From: $from";
$server = ""; 

ini_set ("SMTP", $localhost);

$url="";
$msg="$url";    
$body = Example Text!

mail($to, $subject, $body, $headers);
如何将HTML模板(以及CSS)直接包含到php电子邮件表单的$body变量中

我做了很多研究,但找不到任何实质性的东西

还请记住,在HTML电子邮件中,强烈建议您尽可能使用内联CSS和老式HTML格式,以确保与不同电子邮件客户端的最大兼容性。也没有
divs
-只是普通的旧货物
-s

-example#5


还请记住,在HTML电子邮件中,强烈建议您尽可能使用内联CSS和老式HTML格式,以确保与不同电子邮件客户端的最大兼容性。也没有
divs
-只是普通的旧good
-s

缺少电子邮件客户端将邮件解释为HTML所需的标题。将以下内容添加到标题中:

$headers = "From: " . $from . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

您缺少电子邮件客户端将邮件解释为HTML所需的标题。将以下内容添加到标题中:

$headers = "From: " . $from . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

首先,您需要添加一些标题,以便正确显示HTML。 摘自mail()PHP文档,以下是您的操作方式:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

在那之后,我假设$body是文本应该在的位置,所以这是一个将所有HTML放在引号之间的问题(用反斜杠将HTML中的每个引号转义),基本上就是这样。

首先,为了使HTML正确显示,您需要添加一些标题。 摘自mail()PHP文档,以下是您的操作方式:

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

在那之后,我假设$body是文本应该在的地方,所以这是一个将所有HTML放在引号之间的问题(用反斜杠转义HTML中的每个引号),这差不多就是它了。

我过去使用的一种方法是像平常一样创建页面(使用HTML/php等)然后使用文件内容($url),如下所示:

因为您使用的是http://php,所以php是执行的,而不是拉入模板,简单但有效


我还建议您使用内联css,不要害怕使用表

我在过去使用过的一种方法是,像往常一样创建页面(使用html/php等),然后使用file\u get\u contents($url),如下所示:

因为您使用的是http://php,所以php是执行的,而不是拉入模板,简单但有效


我还建议您使用内联css,不要害怕使用表

我昨天为自己写了这封信:

  • 创建您的html并将其放入名为“./email.html”的文件中,然后复制
  • 将下面的代码粘贴到与html文件位于同一目录中的php文件中
  • 如果在HTML中使用图像名称,请修改它们,就像这样做:src=“cid:world.jpg”
  • 就这样……我想。=)

    //附件文件路径/名称
    $files[0]='./world.jpg';
    $files[1]='./world2.jpg';
    $to='';
    $bcc=“”;
    $subject='';
    $from=“”;
    $htmlx='';
    $handle=@fopen(“./email.html”,“r”);
    如果($handle){
    while(($buffer=fgets($handle,4096))!==false){
    $htmlx.=$buffer;
    }
    如果(!feof($handle)){
    echo“错误:意外的fgets()失败\n”;
    }
    fclose($handle);
    }
    $semi_rand=md5(time());
    $mime_boundary=“==多部分_boundary_x”。$semi_rand.“x”;
    $headers=“From:$From\n”;
    $headers.=“回复:$from\n”;
    $headers.='密件抄送:'$密件抄送。“\n”;
    $headers.=“MIME版本:1.0\n”。“内容类型:多部分/混合;\n”boundary=“'.$mime_boundary.”“.\n”;
    $headers.=“X作者:\n”;
    $message='-'.$mime\u边界。“\n”;
    $message.='内容类型:text/html;字符集=UTF-8'.“\n”;
    $message.=“内容传输编码:7bit\n\n\n”$htmlx。“\n\n\n”;
    //准备附件
    
    为了($i=0;$i我昨天为自己写了这封信:

  • 创建您的html并将其放入名为“./email.html”的文件中,然后复制
  • 将下面的代码粘贴到与html文件位于同一目录中的php文件中
  • 如果在HTML中使用图像名称,请修改它们,就像这样做:src=“cid:world.jpg”
  • 就这样……我想。=)

    //附件文件路径/名称
    $files[0]='./world.jpg';
    $files[1]='./world2.jpg';
    $to='';
    $bcc=“”;
    $subject='';
    $from=“”;
    $htmlx='';
    $handle=@fopen(“./email.html”,“r”);
    如果($handle){
    while(($buffer=fgets($handle,4096))!==false){
    $htmlx.=$buffer;
    }
    如果(!feof($handle)){
    echo“错误:意外的fgets()失败\n”;
    }
    fclose($handle);
    }
    $semi_rand=md5(time());
    $mime_boundary=“==多部分_boundary_x”。$semi_rand.“x”;
    $headers=“From:$From\n”;
    $headers.=“回复:$from\n”;
    $headers.='密件抄送:'$密件抄送。“\n”;
    $headers.=“MIME版本:1.0\n”。“内容类型:多部分/混合;\n”boundary=“'.$mime_boundary.”“.\n”;
    $headers.=“X作者:\n”;
    $message='-'.$mime\u边界。“\n”;
    $message.='内容类型:text/html;字符集=UTF-8'.“\n”;
    $message.=“内容传输编码:7bit\n\n\n”$htmlx。“\n\n\n”;
    //准备附件
    
    对于($i=0;$iGreat idea但它不起作用!当我使用此方法时,它不会发送!有什么想法吗?很难说没有看到日志..试试它是一个很棒的电子邮件类,非常强大且易于使用伟大的想法但它不起作用!当我使用此方法时它不会发送!有什么想法吗?很难说没有看到日志..试试它的伟大的电子邮件类,非常强大,易于使用