【问题标题】:Sending HTML email from Joomla! component从 Joomla! 发送 HTML 电子邮件!零件
【发布时间】:2014-01-20 22:31:53
【问题描述】:

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

谢谢, 克里斯

【问题讨论】:

    标签: email templates joomla joomla3.0


    【解决方案1】:

    在管理员端创建一个部分,用于使用 Joomla 的默认编辑器编辑您的电子邮件模板

    您可以在后端创建一个编辑器并在其中打开一个 html 文件,用于为用户更改样式、格式内容等。

    将您的模板文件保存为服务器上的 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}

    希望对你有所帮助..

    【讨论】:

    • 谢谢,这听起来不错。稍后我会试一试。
    • 对于延迟接受这一点表示歉意,我已经采用了在管理区域中使用编辑器元素的方法 - 不使用外部 html 文件。 - 感谢您的帮助:)
    • 我想在这个出色的答案中补充一点,使用适当的电子邮件模板是一种很好的做法(在智能手机、平板电脑、不同的电子邮件客户端等中正确显示)。这里有一些优秀的开源代码:github.com/mailchimp/email-blueprints。如果您将 mailchimp 变量替换为您自己的变量,您的电子邮件将在大多数设备中正确显示:)
    【解决方案2】:

    textareaeditor 类型的组件中添加配置字段,并让用户编写电子邮件模板。您应该说明哪些标记可用或至少提供默认文本,例如

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

    然后只需将代码中的 {TOKENS} 替换为 str_replace

    【讨论】:

      猜你喜欢
      • 2015-06-07
      • 2012-08-22
      • 2011-03-26
      • 2011-03-04
      • 1970-01-01
      • 2011-03-30
      • 2015-09-22
      • 2017-03-31
      相关资源
      最近更新 更多