PHP从网站发送HTML EMAIL页面

时间:2010-12-02 23:44:51

标签: php html email url

我之前使用PHP发送电子邮件,但从未从其他来源发送完整的HTML页面,所以我想知道从哪里开始和其他一些事情。

我做了一些研究,但我的困惑并没有消除任何问题。

我是直接获取网页内容并发送,还是可以使用设置来使用网址? 我可以使用的最简单的方法是什么,有人可以给我一个例子吗? 发送这样的电子邮件是否存在风险... 5000人以及如何使用返回链接到URL源的链接更改标题数据?

3 个答案:

答案 0 :(得分:3)

以下行获取HTML页面的内容。

 $mail->MsgHTML(file_get_contents('contents.html'));

到这里查看详细信息: http://phpmailer.worxware.com/index.php?pg=exampleagmail

require_once('../class.phpmailer.php');
//include("class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded

$mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch

$mail->IsSMTP(); // telling the class to use SMTP

try {
  $mail->Host       = "mail.yourdomain.com"; // SMTP server
  $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  $mail->SMTPAuth   = true;                  // enable SMTP authentication
  $mail->SMTPSecure = "tls";                 // sets the prefix to the servier
  $mail->Host       = "smtp.gmail.com";      // sets GMAIL as the SMTP server
  $mail->Port       = 587;                   // set the SMTP port for the GMAIL server
  $mail->Username   = "yourusername@gmail.com";  // GMAIL username
  $mail->Password   = "yourpassword";            // GMAIL password
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->AddAddress('whoto@otherdomain.com', 'John Doe');
  $mail->SetFrom('name@yourdomain.com', 'First Last');
  $mail->AddReplyTo('name@yourdomain.com', 'First Last');
  $mail->Subject = 'PHPMailer Test Subject via mail(), advanced';
  $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  $mail->MsgHTML(file_get_contents('contents.html'));
  $mail->AddAttachment('images/phpmailer.gif');      // attachment
  $mail->AddAttachment('images/phpmailer_mini.gif'); // attachment
  $mail->Send();
  echo "Message Sent OK\n";
} catch (phpmailerException $e) {
  echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
  echo $e->getMessage(); //Boring error messages from anything else!
}

答案 1 :(得分:1)

免责声明:我还不能评论,所以请原谅这是一个“答案”。

我认为你可能需要在这里澄清一下你的目标。

听起来你想要做的是首先构建一个基本的刮刀,除非你有权访问原始的html文件。 基本上你可以使用fopen(“url”,“r”),fsockopen(“url”,80),或者使用curl处理程序来提交页面请求。

从这里开始,根据您的方法,您将阅读响应并生成HTML或多部分电子邮件。

至于添加电子邮件标题的链接,你可以这样做,但我觉得它不会做你想要的。这样做的方式取决于您决定发送电子邮件的方式。

答案 2 :(得分:0)

艾夫斯的答案很好。

通过电子邮件发送html页面,你真的想要考虑一个问题。

Html电子邮件和Html页面是两个完全不同的学校。

Html电子邮件将带您回顾10年(问候表!),您可以采取哪些措施来支持尽可能多的电子邮件客户端。

很可能是直接的电子邮件 - 网页上的内容会在收件人电子邮件中看起来很糟糕..

然后你必须考虑嵌入样式表等。