0

我正在尝试发送带有图片的电子邮件;我的电子邮件正文是:

<?php 

$message = <<< email

<img src="http://planet-earth.bogus.us/icons/secret.pictures.gif">

Dear {$email},

email;

?>

当我收到邮件时,我看不到图片。相反,我看到<img src="http://planet-earth.bogus.us/icons/secret.pictures.gif">. 我知道这是因为 <<< 电子邮件;我如何能够使用 <<< 电子邮件显示图片而不是代码?

更新

我正在使用 zend 框架。我的代码如下所示:

<?php
     $mail = new Zend_Mail();
     $mail->setFrom('admin@mysite.com', 'My site');
     $mail->addTo($recoveryaccount->username);
     $mail->setSubject("Mysite");
     include "_email_recover_password.phtml";
     $mail->setBodyText($message);
     $mail->send();
?>

_include "_email_recover_password.pthml" 
<?php 

 $message = <<< email
 <img src="http://picturelocation.picture.gif">
 Dear {$account->getUsername()},

 Somebody has requested that the password associated with this account be
 reset. If you initiated this request, click the below link to complete the process:

 http://www.example.com/{$account->getRecovery()}

 Thank you!
 Mysite

 Questions? Contact us at admin@mysite.com

 email;

 ?>
4

3 回答 3

6

要回答您的问题,您需要发送将内容类型设置为text\html. 没有它,您的消息将被接收客户端视为纯文本。以下代码正确设置内容标题并发送基本 HTML 消息。

// message
$message = '
<html>
<body>
  <img src="http://planet-earth.bogus.us/icons/secret.pictures.gif">
</body>
</html>
';

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

$headers .= 'To: David <david-z@domain.com>' . "\r\n";
$headers .= 'From: Bot <bot@domain.com>' . "\r\n";

mail("david-z@domain.com", "mysubject", $message, $headers);
于 2012-04-21T01:05:42.277 回答
1

不,这不是因为heredoc。您需要发送格式正确的 HTML 邮件,而您不是。有各种标题和 MIME '骨架' 结构的东西,你根本没有发送。

不要试图自己建立一个。使用SwiftmailerPHPMailer为你做这件事。

于 2012-04-21T00:54:27.617 回答
-1

我用什么,

$from="From: TEST\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1"; 
mail("TOWHO@TEST.com", $title, $content, $from); 
于 2016-03-29T02:53:39.570 回答