• drupal7 smtp+mimemail+mailsystem 实现发送html邮件


    1.下载三个模块

      smtp: https://www.drupal.org/project/smtp

      mimemail: https://www.drupal.org/project/mimemail

      mailsystem: https://www.drupal.org/project/mailsystem

      启用如下模块

         

    2.配置一下mailsystem /admin/config/system/mailsystem

      点开NEW CLASS, format()方法选择MimeMailSystem, mail()选择SmtpMailSystem;这样就可以使用邮件使用mimemail的格式(支持html),而在发送邮件时,使用的是SMTP协议(由于我们一般用第三方的smtp服务器,是要验证用户信息,smtp模块正好有这个功能),点击最下方的保存后可以进行一步操作了。

      

        将上面三项都选择刚生成的新类(MimeMailSystem_SmtpMailSystem),如果没有开启Mime Mail Example模块,第三项是没有,点下最后的保存按钮。

    3.配置一下smtp  /admin/config/system/smtp

       按需配置下smtp模块,SMTP AUTHENTICATION这一块填正确一般就没什么问题了。

    调试那边最好选择Log everything ,这样好知道哪里出了问题;另外如果要测试是否配置成功,请用MimeMail Example来测试(/example/mimemail_example),smtp模块测试一般会发送失败,有兴趣的可以探究下原因。

    4.自定义一个发邮件的方法

    /**
     * @param $to
     * @param $params ["subject" => '', 'body' => '', 'header' => ['Cc' => '', 'Bcc'=> '']]
     * @param string $from
     * @param string $key
     * @return bool
     */
    function 模块名_send_mail($to, $params, $from = 'default_from', $key = 'common') {
        $module = '模块名';
        if ($from == 'default_from') {
            module_load_include('inc', 'mimemail');
            $from = mimemail_address(array(
                'name' => variable_get('mimemail_name', '又起风了'),
                'mail' => variable_get('mimemail_mail', 'xxxx'),
            ));
        }
        $language = language_default();
        $send = TRUE;
        $result = drupal_mail($module, $key, $to, $language, $params, $from, $send);
        if ($result['result'] == TRUE) {
            return true;
        }
        else {
            return false;
        }
    }
    
    /**
     * 这一步很重要,不然会报body为空
     * Implements hook_mail().
     */
    function 模块名_mail($key, &$message, $params) {
        $message['subject'] = $params['subject'];
        $message['body'][] = $params['body'];
    }
    

      

    附:可以在主题下新建/css/mail.css 来控制html邮件的样式;邮件模板放在/templates/mail/mimemail-message.tpl.php,如果要多种模板,可以是这种格式mimemail-message--模块名--key值.tpl.php

    以上原创,转载请附出处。

  • 相关阅读:
    浅析NetFilter和iptables
    关于skb_header_pointer函数
    Linux kernel 绝对路径之d_path篇
    几个内核函数:filp_open、filp_read、IS_ERR、ERR_PTR、PTR_ERR
    一文读懂数字签名
    Nginx配置文件nginx.conf中文详解(总结)
    nginx 重写 rewrite 基础及实例
    最完美解决Nginx部署ThinkPHP项目的办法
    nginx中的try_files指令解释
    js电话号码正则校验--座机和手机号
  • 原文地址:https://www.cnblogs.com/barefoot/p/9670196.html
Copyright © 2020-2023  润新知