2017-10-15 1 views
1

私は電子メールを送信するためにphpmailerを使用しています。自分の会社のためにカスタムロゴを作成したいのですが、問題はロゴが添付ファイルとして表示されるため、添付しないでメールに埋め込む方法を知りたいですか?あなたPHPMailer経由で添付せずに、画像の背景を持つhtml電子メールを送信するには?

$mail->Subject = 'Here is the subbject'; 
$mail->AddEmbeddedImage('logo.png', 'logo'); 
$mail->Body = '<html><body>'; 
$mail->Body = '<img src="cid:logo" style="width:100%"></img>'; 
$mail->Body = '<h3>Bonjour</h3>'; 
$mail->Body .='</body></html>'; 

if(!$mail->send()) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent'; 
} 
+1

メールに添付せずに?イメージをホストするにはWebサーバーが必要です(電子メール本文でhtml/cssで参照します)。それ専用のウェブサーバーにアクセスできますか? – IncredibleHat

+0

ありがとう、いいえ、私もホストされている画像を試しました:logo.pngの代わりにhttp://via.placeholder.com/350x150しかし、私はローカルホストでの私のテストで添付ファイルのロゴを得ました –

答えて

1

画像への直接リンク(ない相対リンク)が含まれている必要があり、メールの本文に感謝し、その画像がjpgでなければなりません。例:

<?php 
$body .= <<<EOD 
<a href='https://my-website.com'><img src='https://my-website.com/image.jpg' alt='logo'></img></a> 
EOD; 
?> 
+0

注:doesntはする必要がありますJPG。今日の電子メールプログラムではpng、さらにはgifでもかまいませんが、htmlを処理できるのであれば広くサポートされています。 – IncredibleHat

+1

完璧にありがとう –

+1

ランドールはまだ広く普及しているOutlook 2007では当てはまりません。 jpgはレンダリングしますが、pngはレンダリングしません。他のプログラムも機能が限定されていると想定しなければならないため、クロスプラットフォームソリューションを組み込むことが賢明です。 – Steven

関連する問題