2012-07-26 46 views
0

這是我當前的代碼:如何輸入表HTML到PHP電子郵件代碼

current code

,我想添加一些表來改變電子郵件的設計,我很新的PHP和ZEND的任何幫助將非常感謝。

+0

用四個空格前面加上你的代碼的每一行,以便我們可以真正閱讀它。實際上,另一種方式是使用 – Palladium 2012-07-26 15:47:22

+0

。 – Palladium 2012-07-26 15:49:11

+0

'table'是什麼意思? – arkascha 2012-07-26 15:50:24

回答

0

最好的開始方法是按照您希望的方式將您的電子郵件佈局爲HTML,然後將其複製到您的HEREDOC部分並用變量替換內容。

+0

好的,我已經準備好了html,我只需要回顯'

';?不在PHP的中間? – 2012-07-26 15:54:59

+0

我會把你的表格標籤結構放在HTML文檔中。或者,如果您使用PHP動態構建表格,則可以使用{$ table_html}或類似方法將其插入到HEREDOC中 – 2012-07-26 15:58:56

1

正如邁克布蘭特所說,您可以創建您的HTML,然後以內聯方式複製。但是,您需要確保電子郵件是使用適當的mime類型發送的,以便用戶的電子郵件閱讀器知道以HTML格式呈現而不是純文本格式。這並不難,但是我發現PEAR郵件和mail_mime庫確實使得它更容易,更明顯地做了什麼。也有一些第三方的電子郵件的API,例如我已經使用http://swiftmailer.org/

0
  • 爲您的電子郵件一個(Zend公司)佈局就像你爲你的網站做一個項目良好的成功。最好使用html 4.0 doctype。避免使用CSS。大多數電子郵件客戶端無法正確呈現它。如果您必須使用CSS,請將其嵌入到樣式標籤(無外部內容)中,並將style-Tag嵌入到主體中。 (大多數網絡郵件服務器正在丟棄頭部)。
  • 現在爲要發送的每個郵件類型創建視圖(例如:註冊,pw-lost,...)
  • 將變量分配給視圖並將其呈現到佈局中。將佈局呈現爲Zend-Email對象。

如果你要管理的內容,主題,發件人,...在一個行政區域,只需要創建一個表具有以下colums:

  1. 型(可以註冊,PW-輸了...)
  2. 主題
  3. (對於被不客氣的管理如郵件:當用戶發表評論)
  4. CC
  5. 密件抄送
  6. HTML的文本
  7. 文本可以additionaly包本文向您(含佔位可選純文本)HTML的郵件,或只是(與e-Mail與佔位爲personalzation文本)發送html或文本取決於用戶設置。
  8. 一些額外colums的附件(可選)

現在你可以adminster不同的郵件,放下你的觀點(而不是佈局)。

至少創建郵件類,你可以以這種方式訪問​​:

$mail = new My_Mail(My_Mail::PW_LOST); 

$mail->bind($userData); // will replace the placeholders in the text 

$mail->addTo(...); 

$mail->send(); // will replace the placeholders in the text, renders the layout, Sends the mail. 

代碼示例: 我可以在星期六提供代碼樣本,如果你有興趣

0

你可以使用Zend_Mail類(Zend/Mail.php)發送郵件。細節是下面的代碼示例:

$mail = new Zend_Mail(); 
$mail->setBodyText($bodyText); 
$mail->setBodyHtml($bodyHtml); 
$mail->setFrom($senderAddress, $senderLabel); 
$mail->addTo($recipientAddress, $recipientLabel); 
$mail->setSubject($subject); 
$mail->send(); 

你可能有一個問題是,如何將電子郵件(文本和HTML)的內容被分配到$ bodyText的和$ bodyHtml。您可以爲html內容創建一對phtml文件,另一個用於創建文本。請參閱以下代碼以瞭解如何實現此目的:

$this->view->fullname = "John Abc"; 
$this->view->emaildata = $data //Possibly an array of data from the db 
$bodyText = $this->view->render('emails/htmlemail.phtml') 
$bodyHtml = $this->view->render('emails/textemail.phtml') 

注意:此代碼段應該位於前一個代碼段的上方。

希望這回答你的問題。快樂編碼:)

相關問題