如何通过电子邮件发送网页?

时间:2012-11-17 10:49:35

标签: php email

我在自己的域名上创建了一个网页,我希望允许任何访问者通过电子邮件将此页面发送给任何人。

该页面有图片,CSS和PHP代码。它从我的网站获得了前5个新闻。

我正在尝试使用这个类:

<?php
include_once("../DataAccess.php");
class sendmail
{
    /**
     * @var from mail.
     */
    public $from = "kam@yahoo.com";

    /**
     * @var from name.
     */
    public $fromName = " Mail List";

    /**
     * @var to mail.
     */
    public $to  = 'eng.k@gmail.com'; // note the comma , if you want multiple recipients

    /**
     * @var to name.
     */
    public $name = 'Khaled';

    /**
     * @var subject.
     */
    public $subject = 'Hello World !!';

    /**
     * @var message.
     */
    public $message = 'Thank you, your message has been received We will reply you as soon eng@gmail.com';

    /**
     * @var newlines.
     */
    private $RN = "\r\n";

    /**
     * @var message charset.
     */
    public $charset = 'utf-8';

    /**
     * Sends an email.
     *
     * @author Yousef Ismaeil.
     */
    public function mail_to ()
    {

        $mail = &$this;

        // To send HTML mail, the Content-type header must be set
        $headers  = 'MIME-Version: 1.0'.$mail->RN;
        $headers .= 'Content-type: text/html; charset='.$mail->charset.''.$mail->RN;
        // Additional headers
        $headers .= 'To: '.$mail->name.' <'.$mail->to.'>'.$mail->RN;
        $headers .= 'From: '.$mail->fromName.' <'.$mail->from.'>'.$mail->RN;
        $headers .= 'Return-Path: '.$mail->from.'\r\n';
        $headers .= "X-Priority: 1\r\n";
        $headers .= "X-MSMail-Priority: High\r\n";



        if (@mail($mail->to, $mail->subject, $mail->message, $headers))
        {
            return true;
        }
        else
        {
            return false;
        }

    }

}

$date1=date('Y-m-d');
$send_mail = new sendmail();
$send_mail->from     = "zizo@yahoo.com";
$send_mail->fromName = "Zamalkawy Ana";
$send_mail->to       = "kam@ar.com";
$send_mail->name     = "Khlaed";
$send_mail->subject  = "Zamalkawy Ana Sports news for ".$date1;
$homepage = file_get_contents('http://zamalkawyana.com/MailList/home.php');
$send_mail->message  = $homepage;
if ($send_mail->mail_to()) echo 'Msg sent';
else echo 'Can\'t send msg.'; 

?>

...但是当我发送它时,我只会得到新闻的标题和图片,而且看不到页面的模板。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

目前尚不清楚上述说明中$ homepage包含的内容。 可能是您网页的html标记。但是,如果你真的想发送那个内容,这是值得怀疑的。

通常做的不是发送实际的html内容,而是发送指向页面的链接(url)。由于您的网页无论如何都可以通过互联网上的网址访问,这是一个微不足道的步骤。

这有一些优点:

  1. 消息变得更小,因为它只有几行文本加上链接。它决定访问页面或不访问接收者。

  2. 该消息可以显示在任何电子邮件客户端中,而不会出现html消息存在的巨大安全问题。因此,对接收者来说更公平,因为您不必向任何接收者询问最终信任只是为了打开您的消息。

  3. 您可以写几行,说明此消息实际包含的内容,发送原因等等。它更友好,因为它更透明。

答案 1 :(得分:0)

添加到标题:$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

你可以将html代码放在邮件正文中(作为字符串)。

另请查看此link