国外设计欣赏网站 - DOOOOR.com

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,微信登陆

搜索

[Drupal教程] Drupal 7.X:用smtpl发送邮件及发送html格式邮件设置方法教程

[复制链接]
发表于 2-16-2012 22:34 | 显示全部楼层 |阅读模式
drupal7发邮件跟drupal5也是有挺多的差别的,使用drupal_mail发送邮件,邮件内容的相关信息都是在调用drupal_mail的方法事,在$params这个参数中传递进来,生成message的subject和body则是调用hook_mail()
+ Z+ W( Q+ y5 i" w+ \; Q6 R( z( Z6 \9 y% P9 ~; R0 |$ u
如果使用smtp来发送mail呢?这个很简单,因为drupal的module很多(要感谢那些无私奉献的人),简单介绍下: 0 M# g4 a3 U* j) Y* w6 \7 H" y7 d4 x
一:下载PHPMailer http://drupal.org/project/phpmailer
8 h* M2 P, G! ^% v      这个module还需要依赖Libraries API http://drupal.org/project/libraries 1 r, C9 [2 }! O- r
二:下载PHPMailer库 http://code.google.com/a/apache- ... iler/downloads/list,提取class.phpmailer.php和class.smtp.php这两个文件,放到drupal\sites\all\libraries\phpmailer这个文件夹下,(libraries是专门用来放一些类库的)
+ {/ x2 x: m2 Y- Y三:到后台module下安装PHPMailer和Libraries API这两个module,安装完成后,进入admin/config/system/phpmailer这个页面对PHPMailer做一些配置,他推荐的是gmail,上面有详细的步骤。
6 n+ o- o- U1 w; i# X" H2 j% c2 J& f3 [, Q6 ~
然后开始发邮件,可是在发送邮件的过程中发现了个令人头疼的问题,我想发送html格式的mail,尽管我修改了header中的Content-Type为text/html,可是收到的始终是内容被转了格式的邮件。原来在drupal_mail()中有个有句代码是$message = $system->format($message);(大概在L146),message被转格式了,在项目种搜索format()这个方法,搜到好几处,排除确定后,原来是调用了phpmailer.class.inc的format,在这个方法中$message['body'] = drupal_html_to_text($message['body']);就是这句将html格式转化了。 . V! M) n0 U/ _; {! I& Y# |8 j) V+ @+ d5 }: s
1 q0 I% }7 }6 G, \) S7 L
这样利用smtp发送html邮件就大功告成了。在搜索项目中调用了哪处的format,也可在mail.inc的drupal_html_to_text()的这个方法中加上debug_print_backtrace()这个方法去跟踪你的代码。
) X" e/ o; Z! X1 T1 H% Q) ]) B. `. j. F* f5 G3 [+ f# N

+ ?( }4 R- x$ V# Q# g" M' b7 a$ Y0 d: W; n, e# m6 O
本文选自雨滴米的博客,谢谢!# F  L& `( \- B. e8 _2 Y9 n

0 x$ r1 P1 A) H& m1 P: m

|2011-2026-版权声明|平台(网站)公约|手机版|手机版|DOOOOR 设计网 ( 吉ICP备2022003869号 )

GMT+8, 12-18-2025 08:48 , Processed in 0.223141 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表