我在自己的域名上创建了一个网页,我希望允许任何访问者通过电子邮件将此页面发送给任何人。
该页面有图片,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.';
?>
...但是当我发送它时,我只会得到新闻的标题和图片,而且看不到页面的模板。
我该怎么做?
答案 0 :(得分:1)
目前尚不清楚上述说明中$ homepage包含的内容。 可能是您网页的html标记。但是,如果你真的想发送那个内容,这是值得怀疑的。
通常做的不是发送实际的html内容,而是发送指向页面的链接(url)。由于您的网页无论如何都可以通过互联网上的网址访问,这是一个微不足道的步骤。
这有一些优点:
消息变得更小,因为它只有几行文本加上链接。它决定访问页面或不访问接收者。
该消息可以显示在任何电子邮件客户端中,而不会出现html消息存在的巨大安全问题。因此,对接收者来说更公平,因为您不必向任何接收者询问最终信任只是为了打开您的消息。
您可以写几行,说明此消息实际包含的内容,发送原因等等。它更友好,因为它更透明。
答案 1 :(得分:0)
添加到标题:$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
你可以将html代码放在邮件正文中(作为字符串)。
另请查看此link。