2017-08-28 18 views
0

私は2つの異なる電子メールクライアントを試してみました& stackoverflow答えました。しかし、問題の解決に失敗しました。私はまた、ローカル画像のパスをテストしました、それは完全にokです。ここPHPmailer AddEmbeddedImage埋め込みに失敗しました画像

は、符号化部である:

$mail->addEmbeddedImage('../img/abc-company- 
    logo.png','logo','abc-company-logo.png'); 

身体各部:

$mail->Body = "<div id='container' style='height:auto;font- 
    family:Helvetica;border: 1px solid #CCC;'> 
<div id='header' style='margin: 0 auto; 
    background-color:#0958C3; color:#FFFFFF; 
    font-size: 20px;text-align: center; 
display:block; 
'> 
<img src='cid:logo' alt='Picture Description'/> <br> 
<strong>Heading</strong> 
</div> 
</div>"; 
+0

: 例については、ここで__DIR____FILE__http://php.net/manual/fa/language.constants.predefined.php

を参照してください?そのような相対パスを使用すると、エラーが発生しやすくなります。 – Synchro

答えて

1

問題PHPMailerインラインスクリプトから呼び出され に対して画像の代わりに、文書に対して埋め込むことです in

これは、../img/abc-company-logo.pngをに渡すことを意味しますは、実際のP​​HPMailerクラスファイルの場所のの相対パスを検索します。

パスを絶対パスに変更する必要があります。 addEmbeddedImage` `の呼び出しが何を返すん

$mail->addEmbeddedImage(dirname(__DIR__) . '/img/abc-company-logo.png','logo','abc-company-logo.png'); 
+0

編集していただきありがとうございます。 – mimi

+0

より正確なサンプルコードを追加しましたが、デバッグして正しい絶対パスを 'addEmbeddedImage'メソッドに渡すようにしてください。 –

+0

私はある時点で混乱しています、ディレクトリ名は何でしょうか?この特定のPHPファイルは "includes"フォルダにあり、イメージは "img"フォルダにあります。私はinclude(_DIR _)を試しましたが、コードの残りの部分は未定義関数を含んでいます。 – mimi

関連する問題