私は、フォーラムが記入された後に人々に 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 部分が機能します。画像があるはずの場所に小さな画像アイコンがありますが、画像は表示されません。