2015-02-23 228 views
0

我正在使用PHPMailer。我必須發送兩個附件,兩者都是鏈接(一個是base64圖像,第二個是url)。通過PHPMailer通過URL附件發送電子郵件

// Variables with images 
$croped_img = 'data:image/jpg;base64,/extreme_long_code_here'; 
$photo_thumbnail_url = 'http://t2.ftcdn.net/jpg/00/76/44/75/400_F_76447580_gOWAV0P8APW0iC51OsW5huD6qoiEsh7O.jpg'; 

// PHPMailer 
$mail->addAttachment('$photo_thumbnail_url', 'selected.jpg'); 
$mail->addAttachment('$croped_img', 'croped_img.jpg'); 

PHPMailer的工作原理是因爲如果我以這種形式發送電子郵件,附件不會來。 但是,如果我鏈接本地圖像,例如'images/abc.jpg'然後他們來了。

我應該使用哪些php函數將變量作爲電子郵件附件發送?

+0

你應該使用方法AddEmbeddedImage – Komal 2015-02-23 12:06:53

+0

但如何在我的情況下使用這個?我仍在嘗試,但它不會爲我工作。 – 2015-02-23 12:43:16

+0

可能重複的[PHP的字符串附件](http://stackoverflow.com/questions/28129848/php-attachment-from-string) – Synchro 2015-02-23 13:46:28

回答

1

與往常一樣,請確保您使用的是最新的PHPMailer的版本。

您需要使用addStringAttachment,文檔here

$photo_thumbnail_url = 'http://t2.ftcdn.net/jpg/00/76/44/75/400_F_76447580_gOWAV0P8APW0iC51OsW5huD6qoiEsh7O.jpg'; 
$mail->addStringAttachment(file_get_contents($photo_thumbnail_url), 'selected.jpg'); 

msgHTML功能自動處理data網址,將它們轉換爲嵌入式圖像自動cid值,因此,如果您的圖片已嵌入在HTML中,不需要爲此工作做任何事情。

如果你想自己處理數據URL轉換,你可以看看它是如何工作的here

+0

終於有效。這是我正在尋找的。謝謝。 – 2015-02-23 14:02:59

0

確認您的PHPMailer庫是最新的!

再試試這一個,

$mail->AddEmbeddedImage($photo_thumbnail_url, 'selected.jpg'); 
$mail->AddEmbeddedImage($croped_img, 'croped_img.jpg'); 
+0

這是行不通的。我想附上,而不是嵌入。在文檔中,我發現這個:AddAttachment($ path,$ name,$ encoding,$ type);但它仍然無法工作。 – 2015-02-23 13:21:32

+0

這不行;錯誤的工作功能。 – Synchro 2015-02-23 13:59:39