2014-01-20 75 views
1

我正在開發一個Joomla!3.0/3.1組件,它允許人們在線預訂高爾夫課程。當他們完成預訂並處理PayPal付款時,我想向他們發送收據/確認電子郵件。 我可以做到這一點,並以html或純文本格式發送信息。不過,我不喜歡現在我的控制器代碼中有查看(電子郵件內容)數據的事實。 有沒有可能有一種模板視圖文件,可以解析併發送內容,而不是?或者我堅持它在我的代碼?從Joomla發送HTML郵件!組件

謝謝, 克里斯

回答

1

在管理方面創造與Joomla的默認編輯

你一個創建在後臺的編輯器,打開裏面是一個html文件編輯電子郵件模板,改變樣式,格式,內容等,爲用戶的部分。 enter image description here

將您的模板文件保存爲服務器上的HTML文件,並將電子郵件發送時間如下所示。

function send_mail_account_pages($email_title,$greeting_text,$subject,$email_content,$user_email){ 

      $config = JFactory::getConfig(); 
      $data['fromname'] = $config->get('fromname'); 
      $data['mailfrom'] = $config->get('mailfrom'); 
      $data['sitename'] = $config->get('sitename'); 

      $path = JPATH_BASE."/email_tmpl/"; 
      $fp = fopen($path."email_tmpl.html","r"); 
      $fsize = filesize($path."email_tmpl.html"); 
      $fcontent = fread($fp,$fsize); 
      fclose($fp); 

      $date_format  = date("M.d, Y"); 

      $fcontent = str_replace("{email_page_title}",$email_title,$fcontent); 
      $fcontent = str_replace("{date}",$date_format,$fcontent); 
      $fcontent = str_replace("{greeting_text}",$greeting_text,$fcontent); 
      $fcontent = str_replace("{email_content}",$email_content,$fcontent); 
      $fcontent = str_replace("{thanks_text}",THANKS_TEXT,$fcontent); 


      $return = JUtility::sendMail($data['mailfrom'], $data['fromname'], $user_email, $subject, $fcontent,1); 
} 

這種方式可以讓管理員用戶授予訪問權限更改模板樣式確保管理員用戶不編輯{place holders}

希望它的幫助..

+0

謝謝,這聽起來像一個很好的方法。我稍後再說。 – FireEnigmaX

+0

爲接受這個延遲道歉,我已經採取了在管理區有一個編輯元素的方法 - 不使用外部html文件。 - 感謝您的幫助:) – FireEnigmaX

+0

我想添加到這個優秀的答案,它是一個很好的做法,使用適當的電子郵件模板(智能手機,平板電腦,爲不同的電子郵件客戶端等正確顯示)。這裏有一些優秀的開源代碼:https://github.com/mailchimp/email-blueprints。如果您用自己的郵件替換mailchimp變量,則可以在大多數設備上正確顯示電子郵件:) – pkExec

1

配置字段添加到您的textarea類型或editor的組成部分,讓用戶編寫電子郵件模板。你應該解釋哪些令牌可用,或至少提供一個默認的文本,如

Dear {USERNAME}, 

today I received {NUM_MESSAGES} messages on your behalf, 
and your profile has been viewed {NUM_PROFILEVIEWS} times. 

然後只需用str_replace替換{} TOKENS在你的代碼。