簡體   English   中英

PHP的嵌入圖像破碎

[英]php embed image broken

嗨,我正嘗試將圖像嵌入電子郵件中,這是我的PHP代碼:

$mail1->SMTPDebug = 2;                                 
$mail1->isSMTP();                                     
$mail1->Host = 'smtp.gmail.com';  
$mail1->SMTPAuth = true;                               
$mail1->Username = 'email@gmail.com';                
$mail1->Password = 'password';                           
$mail1->SMTPSecure = 'tls';                   
$mail1->Port = 587;
$mail1->setFrom('auto-reply@email.ca', '123');                  
$mail1->addAddress('email@gmail.com');     
$mail1->isHTML(true);                                 
$mail1->Subject = 'Thanks For Reaching us!';
$mail1->Body    = '
       <p> This is a test picture  <img src="img/logo.png"/>  </p>              
         ' ;

$mail1->send();
exit;

當我在本地主機上運行此代碼時,電子郵件會顯示文本,但帶有破損的圖像,並且我已經嘗試了所有方法,包括

$mail1->AddEmbeddedImage('img\logo.png', "two", "logo.png");

但是,它根本不顯示圖像,有人知道如何解決此問題嗎?

這將失敗,因為它是相對路徑,並且電子郵件沒有相對的基本URL(並且這不是您定位嵌入式圖像的方式),因此它將不起作用。

$mail1->Body = '<p>This is a test picture <img src="img/logo.png"/></p>';

改為這樣做:

$mail1->Body = '<p>This is a test picture <img src="cid:two"/></p>';

然后它將與:

$mail1->AddEmbeddedImage('img\logo.png', "two", "logo.png");

因為cid值匹配。 值得使用絕對路徑來確定要從何處加載,並且可以檢查調用的返回值以確保它能夠讀取文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM