通过PHP发送电子邮件中的HTML?

我怎样才能发送一个HTML格式的电子邮件与图片使用PHP? 我想有一个页面,其中有一些设置和HTML输出,通过电子邮件发送到一个地址。 我该怎么办? 主要的问题是附上files.how我可以做到这一点?

这非常简单,将图像留在服务器上,并发送PHP + CSS给他们…

 $to = 'bob@example.com'; $subject = 'Website Change Reqest'; $headers = "From: " . strip_tags($_POST['req-email']) . "\r\n"; $headers .= "Reply-To: ". strip_tags($_POST['req-email']) . "\r\n"; $headers .= "CC: susan@example.com\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; $message = '<p><strong>This is strong text</strong> while this is not.</p>'; mail($to, $subject, $message, $headers); 

正是这一行告诉邮件程序和收件人电子邮件包含(希望)格式良好的HTML,它将需要解释:

 $headers .= "Content-Type: text/html; charset=UTF-8\r\n"; 

这里是链接我得到的信息..( 链接… )

尽pipe你需要安全

您需要使用绝对path为图像编码您的HTML。 通过绝对path意味着你必须上传图像在服务器和图像的src属性,你必须给这样的直接path<img src="http://yourdomain.comhttp://img.dovov.comexample.jpg">

下面是你的参考的PHP代码: – 它来自http://www.php.net/manual/en/function.mail.php

 <?php // multiple recipients $to = 'aidan@example.com' . ', '; // note the comma $to .= 'wez@example.com'; // subject $subject = 'Birthday Reminders for August'; // message $message = ' <p>Here are the birthdays upcoming in August!</p> '; // To send HTML mail, the Content-type header must be set $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n"; // Additional headers $headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n"; $headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n"; // Mail it mail($to, $subject, $message, $headers); ?> 

我有一个这样的代码,它将完美运行我的网站

  public function forgotpassword($pass,$name,$to) { $body ="<table width=100% border=0><tr><td>"; $body .= "<img width=200 src='"; $body .= $this->imageUrl(); $body .="'></img></td><td style=position:absolute;left:350;top:60;><h2><font color = #346699>PMS Pvt Ltd.</font><h2></td></tr>"; $body .='<tr><td colspan=2><br/><br/><br/><strong>Dear '.$name.',</strong></td></tr>'; $body .= '<tr><td colspan=2><br/><font size=3>As per Your request we send Your Password.</font><br/><br/>Password is : <b>'.$pass.'</b></td></tr>'; $body .= '<tr><td colspan=2><br/>If you have any questions, please feel free to contact us at:<br/><a href="mailto:support@pms.com" target="_blank">support@pms.com</a></td></tr>'; $body .= '<tr><td colspan=2><br/><br/>Best regards,<br>The PMS Team.</td></tr></table>'; $subject = "Forgot Password"; $this->sendmail($body,$to,$subject); } 

邮件function

  function sendmail($body,$to,$subject) { //require_once 'init.php'; $from='testing@gmail.com'; $headersfrom=''; $headersfrom .= 'MIME-Version: 1.0' . "\r\n"; $headersfrom .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headersfrom .= 'From: '.$from.' '. "\r\n"; mail($to,$subject,$body,$headersfrom); } 

图像的urlfunction是用于如果你想改变图像,你只有一个function的变化我有很多邮件function,如忘记密码创build用户那里我使用图像URLfunction,你可以直接设置path。

 function imageUrl() { return "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['SCRIPT_NAME'], 0, strrpos($_SERVER['SCRIPT_NAME'], "/")+1)."images/capacity.jpg"; } 

发送一个html电子邮件与使用php发送普通电子邮件没有多大区别。 需要添加的是php mail()函数头部参数的内容types。 这是一个例子。

 <?php $to = "toEmail@domain.com"; $subject = "HTML email"; $message = " <html> <head> <title>HTML email</title> </head> <body> <p>A table as email</p> <table> <tr> <th>Firstname</th> <th>Lastname</th> </tr> <tr> <td>Fname</td> <td>Sname</td> </tr> </table> </body> </html> "; // Always set content-type when sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\b"; $headers .= 'From: name' . "\r\n"; mail($to,$subject,$message,$headers); ?> 

你也可以在这里查看w3schools的更详细的解释

最简单的方法可能就是使用Zend Framework或任何其他框架(如CakePHP或Symphony)。

你也可以使用标准的mailfunction,但是你需要更多关于如何附加图片的知识。

或者,只需将图像托pipe在服务器上,而不是附加在服务器上。 mailfunction文档中logging了发送HTML邮件。

使用PHPMailer,

要发送HTML邮件,您必须设置$ mail-> isHTML(),您可以使用HTML标签设置您的正文

这是一个写得很好的教程:

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/

诀窍是在构buildhtml正文部分时知道Image mime部分的内容ID。 它归结为制作img标签

https://github.com/horde/horde/blob/master/kronolith/lib/Kronolith.php

看一个工作示例的函数buildMimeMessage。

您可以通过PHP轻松发送带HTML内容的电子邮件。 使用以下脚本。

 <?php $to = 'user@example.com'; $subject = "Send HTML Email Using PHP"; $htmlContent = ' <html> <body> <h1>Send HTML Email Using PHP</h1> <p>This is a HTMl email using PHP by CodexWorld</p> </body> </html>'; // Set content-type header for sending HTML email $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Additional headers $headers .= 'From: CodexWorld<info@codexworld.com>' . "\r\n"; $headers .= 'Cc: welcome@example.com' . "\r\n"; $headers .= 'Bcc: welcome2@example.com' . "\r\n"; // Send email if(mail($to,$subject,$htmlContent,$headers)): $successMsg = 'Email has sent successfully.'; else: $errorMsg = 'Email sending fail.'; endif; ?> 

源代码和现场演示可以在这里find – 使用PHP发送美丽的HTML电子邮件