如何在邮箱中显示我的html页面

时间:2014-05-19 05:25:45

标签: php html

<?php
$to      = 'abc@gmail.com';
$subject = 'the subject';
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$message = file_get_contents('http://domain.com/newsletter.html');
$headers = 'From: xyz@gmail.com' . "\r\n" .
    'Reply-To: xyz@gmail.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>

这是我的邮件代码。在这里,我将我的简报发送给现有客户。

任何人都可以帮助我如何通过邮件发送/打开时事通讯?

2 个答案:

答案 0 :(得分:2)

我建议您使用以下内容,但是您将无法使用http://来电,因为这违反了安全原因。

通过这样做,任何人都可以从任何网站包含他们想要的任何内容。该文件必须驻留在您的服务器上,以便以下工作。

利用include()ob_start()ob_get_clean()函数。

您必须使用要包含的文件的相对路径。

<?php

ob_start();
include 'file.xxx';
$message = ob_get_clean();

$to= 'email@example.com';

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

$headers .= 'From: email@example.com' . "\r\n" .
    'Reply-To: email@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

if(mail($to, $subject, $message, $headers)){
    echo "Message sent.";
}

else{
    echo "There was a problem. Check your logs.";
}

?>

<强>脚注:

我从评论中引用jsalonen“请记住,电子邮件阅读器中的CSS支持(可能是有意的)非常有限:campaignmonitor.com/css - 所以如果它在常规浏览器中工作,它可能会或可能不会在电子邮件阅读器中工作。“

  • Google等大多数电子邮件客户端都会忽略CSS,因此最好使用内联CSS。

图片:

您需要做的另一件事是,如果您正在使用图像,那么您将需要使用http://调用图像位置。

即:<img src="http://www.example.com/images/image_1.jpg">

答案 1 :(得分:0)

如果ini文件中有allow_url_fopen,则可以执行以下操作:

$html = file_get_contents('http://domain.com/newsletter.html');
$message = $html;

这应该起作用的原因是因为大多数电子邮件客户端都可以阅读以HTML格式发送的电子邮件(只要您以HTML格式发送电子邮件而不仅仅是明文电子邮件)。

您可以使用echo htmlspecialchars($html);查看您要发送的HTML。