我爲郵件模板創建了頁面,併爲預覽模板設置了按鈕。如何在cakephp中的電子郵件中添加公司徽標?
我已經設置圖片的路徑從我的本地機器一樣,
src="/projectname/app/webroot/img/logo.JPG"
,當我預覽該模板它顯示的標誌。
使用該模板時,當我發送郵件圖像不顯示在電子郵件中。
所以任何人都可以告訴我可能是什麼問題,或者我缺少像MIME類型的東西?
謝謝,
我爲郵件模板創建了頁面,併爲預覽模板設置了按鈕。如何在cakephp中的電子郵件中添加公司徽標?
我已經設置圖片的路徑從我的本地機器一樣,
src="/projectname/app/webroot/img/logo.JPG"
,當我預覽該模板它顯示的標誌。
使用該模板時,當我發送郵件圖像不顯示在電子郵件中。
所以任何人都可以告訴我可能是什麼問題,或者我缺少像MIME類型的東西?
謝謝,
這是行不通的。電子郵件是在客戶端打開的,那麼像「/projectname/app/webroot/img/logo.JPG」這樣的路徑對那個客戶端意味着什麼?什麼是域名?
可以是域添加到SRC像SRC =「http://example.com/projectname/app/webroot/img/logo.JPG」。但這不會默認顯示,因爲這是一個安全風險。 想象一下垃圾郵件發送者,其中包括像src =「http://example.com/feedback?id=12345」這樣的圖像,其中每個電子郵件都標識了郵件發送到的每個電子郵件地址。每位下載此圖片的客戶都會確認收到此電子郵件,讓垃圾郵件發送者知道您正在閱讀垃圾郵件。大多數電子郵件客戶端明確地詢問您是否應下載郵件中引用的圖像。
一種替代的解決方案是包括每個電子郵件作爲附件的電子郵件,那麼可以參考它作爲一個「內聯」的形象。這不需要外部連接,安全風險也較小,大多數情況下客戶端默認情況下都是允許的。
我有谷歌了,理應支持還內嵌一個組成部分,但你可能會發現其他人也: http://bakery.cakephp.org/articles/CraZyLeGs/2006/12/18/swiftmailer-component-tutorial
這可能是因爲當您在本地計算機上測試時,該路徑沒問題。但是,如果您發送電子郵件給自己(例如gmail),那麼您的瀏覽器可能會在http://mail.google.com/gmail/projectname/app/webroot/img/logo.JPG
之類的地方查找圖像,並且在那裏找不到您的圖像。 因此,您需要將圖像源設置爲http://localhost/projectname/app/webroot/img/logo.JPG
。
在電子郵件,您必須使用完整路徑,而不是相對路徑。要在CakePHP中做到這一點很容易,使用:FULL_BASE_URL
常數與HTML Helper
這樣的:
<?php
echo $this->Html->image(
FULL_BASE_URL . $photo['Photo']['path'].$photo['Photo']['filename']
);
?>
(顯然這可以在一個行完成,但我把它弄壞了下來便於閱讀StackOverflow上)
電子郵件客戶端需要圖像的絕對路徑;使用HTML輔助充分底座安裝:
<?= $this->Html->image("logo.JPG", array('fullBase' => true)) ?>
注意,使用HTML幫助時/projectname/app/webroot/img/
不是必需的。
這將回顯沒有主機名/協議的相對路徑,並且不起作用。 – 2017-04-25 10:09:54
核心CakeEmail類也可以處理HTML郵件中的嵌入圖像 – mark 2012-04-25 14:03:01