从Joomla发送HTML电子邮件!零件

时间:2014-01-20 22:31:53

标签: email templates joomla joomla3.0

我正在开发一个Joomla!3.0 / 3.1组件,允许人们在线预订高尔夫课程。当他们完成预订并处理paypal付款时,我想向他们发送收据/确认电子邮件。 我可以做得很好,并以html或纯文本格式发送信息。但是,我不喜欢我现在在我的控制器代码中有视图(电子邮件内容)数据的事实。 是否有可能有一种模板视图文件可以解析并作为内容发送?还是我在我的代码中坚持了它?

谢谢, 克里斯

2 个答案:

答案 0 :(得分:1)

将配置字段添加到textareaeditor类型的组件中,然后让用户编写电子邮件模板。您应该解释哪些令牌可用或至少提供默认文本,例如

Dear {USERNAME},

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

然后只需用str_replace替换代码中的{TOKENS}。

答案 1 :(得分: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}

希望它的帮助..