我有一個電子郵件模板,我用來發送帳戶電子郵件,我想通過osTicket使用相同的HTML電子郵件模板..這可能嗎?是否可以在osTicket中使用HTML電子郵件?
4
A
回答
1
看起來你可能不走運。看看osTicket的this forum post。在發送之前HTML會從電子郵件中刪除。
3
修改在class.ticket.php
添加這個新功能
功能getHtmlEmailTemplate(){ 返回$這 - >配置[ 'html_email_template']; }
在UpdatePref()函數此行添加到$ SQL變種...
'spoof_default_smtp ='。db_input(($變種[ 'default_smtp_id'] & & isset($變種[」 spoof_default_smtp']))?1:0)。
修改在class.email.php
- 通過這個替換您發送()函數:
function send($to,$subject,$message,$attachment=null) { global $cfg; //Get SMTP info IF enabled! $smtp=array(); if($this->isSMTPEnabled() && ($info=$this->getSMTPInfo())){ $smtp=$info; }elseif($cfg && ($email=$cfg->getDefaultSMTPEmail()) && $email->isSMTPEnabled()){ //What about global SMTP setting? if($cfg->allowSMTPSpoofing() && ($info=$email->getSMTPInfo())){ $smtp=$info; }elseif($email->getId()!=$this->getId()){ return $email->send($to,$subject,$message,$attachment); } } //Get the goodies require_once ('Mail.php'); // PEAR Mail package require_once ('Mail/mime.php'); // PEAR Mail_Mime packge //do some cleanup $eol="\n"; $to=preg_replace("/(\r\n|\r|\n)/s",'', trim($to)); $subject=stripslashes(preg_replace("/(\r\n|\r|\n)/s",'', trim($subject))); $body = stripslashes(preg_replace("/(\r\n|\r)/s", "\n", trim($message))); $htmlbody = str_replace('%message', str_replace("\n", '<br />', $body), $cfg->getHtmlEmailTemplate()); $fromname=$this->getName(); $from =sprintf('"%s"<%s>',($fromname?$fromname:$this->getEmail()),$this->getEmail()); $headers = array ('From' => $from, 'To' => $to, 'Subject' => $subject, 'Date'=>date('D, d M Y H:i:s O'), 'Message-ID' =>'<'.Misc::randCode(6).''.time().'-'.$this->getEmail().'>', 'X-Mailer' =>'osTicket v 1.6', 'Content-Type' => 'text/html; charset="UTF-8"' ); $mime = new Mail_mime(); $mime->setTXTBody($body); if (strpos($cfg->getHtmlEmailTemplate(), '%message') !== false) $mime->setHTMLBody($htmlbody); //attachment TODO: allow multiple attachments - $attachment should be mixed parts. if($attachment && $attachment['file'] && is_readable($attachment['file'])) { $mime->addAttachment($attachment['file'],$attachment['type'],$attachment['name']); } $options=array('head_encoding' => 'quoted-printable', 'text_encoding' => 'quoted-printable', 'html_encoding' => 'base64', 'html_charset' => 'utf-8', 'text_charset' => 'utf-8'); //encode the body $body = $mime->get($options); //encode the headers. $headers = $mime->headers($headers); if($smtp){ //Send via SMTP $mail = mail::factory('smtp', array ('host' => $smtp['host'], 'port' => $smtp['port'], 'auth' => $smtp['auth']?true:false, 'username' => $smtp['username'], 'password' => $smtp['password'], 'timeout' =>20, 'debug' => false, )); $result = $mail->send($to, $headers, $body); if(!PEAR::isError($result)) return true; $alert=sprintf("Unable to email via %s:%d [%s]\n\n%s\n",$smtp['host'],$smtp['port'],$smtp['username'],$result->getMessage()); Sys::log(LOG_ALERT,'SMTP Error',$alert,false); //print_r($result); } //No SMTP or it failed....use php's native mail function. $mail = mail::factory('mail'); return PEAR::isError($mail->send($to, $headers, $body))?false:true; }
2:更換你sendmail()函數由這一個:
function sendmail($to,$subject,$message,$from) {
require_once ('Mail.php'); // PEAR Mail package
require_once ('Mail/mime.php'); // PEAR Mail_Mime packge
$eol="\n";
$to=preg_replace("/(\r\n|\r|\n)/s",'', trim($to));
$subject=stripslashes(preg_replace("/(\r\n|\r|\n)/s",'', trim($subject)));
$body = stripslashes(preg_replace("/(\r\n|\r)/s", "\n", trim($message)));
$htmlbody = str_replace('%message', str_replace("\n", '<br />', $body), $cfg->getHtmlEmailTemplate());
$headers = array ('From' =>$from,
'To' => $to,
'Subject' => $subject,
'Message-ID' =>'<'.Misc::randCode(10).''.time().'@osTicket>',
'X-Mailer' =>'osTicket v 1.6',
'Content-Type' => 'text/html; charset="UTF-8"'
);
$mime = new Mail_mime();
$mime->setTXTBody($body);
if (strpos($cfg->getHtmlEmailTemplate(), '%message') !== false)
$mime->setHTMLBody($htmlbody);
$options=array('head_encoding' => 'quoted-printable',
'text_encoding' => 'quoted-printable',
'html_encoding' => 'base64',
'html_charset' => 'utf-8',
'text_charset' => 'utf-8');
//encode the body
$body = $mime->get($options);
//headers
$headers = $mime->headers($headers);
$mail = mail::factory('mail');
return PEAR::isError($mail->send($to, $headers, $body))?false:true;
}
修改在preference.inc.php
1.-添加你想要的表
<tr><th>HTML Email Template:</th>
<td><textarea rows="15" name="html_email_template" style="width:600px;"><?=$config['html_email_template']?></textarea><br><i>Will be used for all outgoing emails.<br />Insert %message where you want the message text to be replaced in the template.</i></td>
</tr>
最後,你得在首一個TextArea這裏面的HTML代碼/設置頁面這使您可以爲模板編寫自己的HTML代碼。只需鍵入%消息,你想將消息放入模板中:)
相關問題
- 1. 是否可以在電子郵件地址中使用double @?
- 2. 是否可以使用MFMailComposeViewController在HTML電子郵件中嵌入圖像?
- 3. 是否可以將分頁符放入HTML電子郵件中?
- 4. 是否可以在Silverlight電子郵件上創建電子郵件附件?
- 5. 是否可以在新電子郵件中使用不同電子郵件線索的「附件ID」?
- 6. 是否可以使用YQL發送電子郵件?
- 7. 是否仍可以使用SMTP發送電子郵件/文本?
- 8. 使用AppleScript,是否可以檢查未讀電子郵件?
- 9. 是否可以使用Javascript檢查新的Gmail電子郵件?
- 10. 是否可以使用jQuery從Gmail下載電子郵件?
- 11. 是否可以使用navigateToURL()通過Flash發送HTML電子郵件?
- 12. 是否可以在電子郵件通訊中嵌入視頻?
- 13. 是否可以在電子郵件佈局中添加BoostrapCSS類?
- 14. 是否可以在Laravel的HTML電子郵件中包含圖像
- 15. 是否可以在GAE上使用雙向電子郵件中繼?
- 16. 是否可以使用Silverlight在Windows Phone 7中列出/閱讀電子郵件?
- 17. 是否可以通過電子郵件標題檢查電子郵件是否包含附件?
- 18. 您是否可以確定電子郵件是否包含僅來自電子郵件標題的附件
- 19. 是否可以將PDF作爲HTML嵌入到電子郵件中?
- 20. 我可以使用.net來檢查電子郵件地址是否存在嗎?
- 21. 是否可以使用JavaScript在按鈕上發送電子郵件?
- 22. 是否可以使用電子郵件地址中的特殊字符?
- 23. 是否可以使用電子郵件模板中的框尺寸
- 24. 可以HTML電子郵件固定在Gmail中,流體移動?
- 25. 電子郵件閱讀回執的內容是否可以在原始電子郵件中設置?
- 26. 是否可以在Bamboo中的電子郵件通知中附加工件?
- 27. 是否可以在Magento中以編程方式發送電子郵件?
- 28. 是否可以在Oracle中以事務方式發送電子郵件?
- 29. 在HTML電子郵件
- 30. 是否可以爲html電子郵件創建垂直文本方向?
嗨,你有沒有把HTML輸入到外掛的郵件中? – Anagio 2011-10-23 01:38:04