我正在开发一个项目,该项目在填写论坛后向人们发送 HTML 电子邮件,我已经让代码的 HTML 部分工作,但由于某种原因,在将图像嵌入时无法让横幅图像出现在顶部我的代码。在我使用最新版本的 PHP 之前,我可以使用它,但必须降级到 PHP 5.3 才能让我的脚本在我们的服务器上运行。从那以后,我使用了相同的代码,结果失败了。我尝试了许多不同的方法,但没有一种被证明是有效的。这是我的代码
require_once('Mail.php');
require_once('Mail/mime.php');
$smtp_credentials = array('host' => 'smtp.postmarkapp.com', 'port' => 25, 'auth' => TRUE, 'username' => '*', 'password' => '*');
$headers = array('From' => '*', 'To' => $email, 'Subject' => $subject);
$mime = new Mail_mime(array('eol' => PHP_EOL));
$file = '/*/*/*/dls.jpg';
$mime->addHTMLImage(file_get_contents($file),'image/jpeg',basename($file),false, "blackstone");
#I used this code to fish out the cid out of mime I tried echoing this out and
# it returned blackstone which I defined as the 5th parameter of addHTMLImage which
# sets the cid.
$cid=$mime->_html_images[count($mime->_html_images)-1]['cid'];
$banner = '<span style="color:#1f497d">
<img width = "623" height = "85" src = "cid:' . $cid . '" />
</span>';
$message_text = $banner;
$mime->setHTMLBody($message_text);
$mime->setTXTBody($body_text);
$mail = Mail::factory('smtp', $smtp_credentials);
try {
$send = $mail->send($email, $mime->headers($headers), $mime->get());
} catch (Exception $e) {
echo $e->getMessage(); die;
}
echo 'mail sent!';
我尝试了许多不同的方法,比如根本不使用 cid,因为许多邮件客户端不能很好地使用 cid,但在 PEAR 手册中建议在 src 属性中使用 cid。我正在使用 gmail,但我认为这不是问题,因为它在我运行较新版本的 php 时有效。每当我打开电子邮件时,它的 html 部分都会起作用。图像应该在的地方有一个小图像图标,但没有显示图像。