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.自定义一个发邮件的方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | /** * @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
以上原创,转载请附出处。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步