addHTMLImage not working



我正在做一个项目,该项目在论坛填写完毕后向人们发送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部分就会起作用。图像应该在的地方有一个小的图像图标,但没有显示图像。

图像url应该是绝对url。。不是路径(相对或绝对)。。它不能是路径,必须是图像的完整url。

因此,您需要使用一个有效的url,例如下面的url。

http://www.example.com/images/image-name.jpg

下面这样的东西是行不通的。

../path/to/images/image-name.jpg

以下情况也是如此(不起作用):

/root/public/path/to/images/image-name.jpg

因此,请确保为您的图像指定了一个有效的url。

相关内容

  • 没有找到相关文章

最新更新