2016-08-03 51 views
0

我購買了一個電子郵件模板並將其定製爲我想要的,但現在我被卡住瞭如何發送它。用phpmailer發送整個html頁面

模板文件是一個完整的html頁面,包含字體,甚至包含頂部樣式表(樣式標籤實際上,不是附加文件),包含媒體查詢和一些字體設置。

我要發送所有這些嗎?包括標題標籤和更多?它基本上是一個完整的html頁面。

我emailscript的一部分是如何建立現在:

$mail->isHTML(true); 
$texts = 'html template'; 
$mail->msgHTML($texts); 

但是我沒有測試過我自己的代碼,但因爲模板文件已滿單引號和雙引號的。所以變量不喜歡這樣,我嘗試將所有單引號替換爲模板字符串中的雙引號,但隨後我的字體不再工作(我使用此站點遠程測試:https://putsmail.com/)。

+0

您對PHP的使用經驗是什麼? – hungerstar

+0

@ hungerstar不是專家,但我可以理解大多數PHP。我有一些經驗。 – twan

+2

@twan'$ html = file_get_contents('your_template.html');'! –

回答

1

PHPMailer本身不會對HTML內容做任何特殊處理(儘管msgHTML會讀取您的內容以製作粗略的純文本版本)。這聽起來像你只是無法引用內聯內容。你可能會喜歡嘗試不同形式的引用稱爲nowdoc將容忍各種報價沒有問題:

$texts = <<<'EOT' 
html template 
EOT; 
$mail->msgHTML($texts); 

你也可以將其保存在外部文件中,當你需要它,這也是在閱讀避免引用問題:

$mail->msgHTML(file_get_contents('template.html')); 
+0

太棒了,那有效!但是,我怎樣才能使用像$ name這樣的變量(其中的名稱已發佈)?我認爲回到外部文件是不會工作的。 – twan

+0

請改用[heredoc](http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc)。變量插值是heredoc和nowdoc之間的主要區別。你可以通過使用include來渲染外部文件中的PHP值,但到那時你可能會更好地考慮使用模板語言來更好地處理它。 – Synchro

+0

嗯以前從來沒有聽說過,我不得不閱讀一些關於它的理解。 – twan