使用 SMTP 模块加强 Drupal 邮件发送能力

Drupal 本身已经实现了简单的邮件发送能力,但需要结合服务器上所安装的邮件系统才能正常工作。因此很多用户在使用 Drupal 时会遇到无法发送邮件的问题。

Drupal 默认的注册行为会通过邮件向用户发送注册链接,如果邮件功能不能正常运作,网站会连最基本的用户注册都会受到影响。

相比在Web服务器上搭建和配置邮件服务,使用独立的邮件服务器,或调用外部 SMTP 进行邮件发送,实现网站-邮件服务器的分离会更合适一些。

通过安装 SMTP 模块,能够为 Drupal 增加 SMTP 配置和调用发件的能力。

下载及安装 SMTP 模块

进入 SMTP 模块页面,下载 SMTP 模块并进行安装(有关模块下载与安装步骤可参考《Drupal 8 模块安装和卸载》)

配置 SMTP 模块

SMTP 模块启用后,通过配置链接(如下图)或导航“管理 > 配置 > 系统 > SMTP Authentication Support”进入 SMTP 配置页面(admin/config/system/smtp)。

Drupal 8 SMTP 配置链接

按照配置页面的结构,我们依次从上至下对各部分进行设置:






* 提交阅读码查看付费内容 忘记阅读码?





6、接受测试邮件。检查测试邮件收件箱,如 SMTP 成功则能够收到如下测试邮件,可以发现发件人名称、地址也与我们第4步所说明的一致。至此,SMTP 发件功能就算是配置好了。

Drupal 8 SMTP 测试邮件

SMTP 本身只是发送邮件的能力,要让系统能够发送包含 HTML 格式、更为精美的邮件,还需要配合 Mime Mail 等第三方邮件模块。

对于开发人员,可以使用 drupal_mail() (Drupal 5~7)或 MailManager::doMail() (Drupal 8)API 来进行发件调用。

看完了?还不过瘾?点此向作者提问
打赏一下,鼓励Ta创作更多好内容!

评论

大牛仔这里提供了一个很有用的网站邮箱发送功能的设置指导,我在自己本地进行这个模块的安装和使用的时候发现了如下应该注意的问题:

1.首先如果你绑定的是QQ邮箱的SMTP服务的话,在QQ邮箱中的“设置”->“账户”进行SMTP服务的设置,我开启的是“POP3/SMTP服务”,选择开启之后会有一个验证的过程,我是通过短信方式验证的,验证结束之后开启服务的页面会显示一个所谓的“密码”,这个密码需要保存起来;

2.上一步主要是开启QQ邮箱的验证服务。接下来开始配置SMTP服务,在配置过程中注意的是在SMTP server settings ”下的“ SMTP port ”,这个数字不是默认的“25”,而要填成“465”(关于这一点我稍后解释)。再下来“ Use encrypted protocol ”这个选项框中选择“SSL”。(为什么在上面填写的是465而不是25,是因为在这里我们选择的是SSL的加密方式,为什么一定要选择SSL加密方式,因为我没有选择SSL加密方式的时候邮件发送过程中报错: SMTP -> get_lines(): $str is "530 Error: A secure connection is requiered(such as ssl). More information at http://service.mail.qq.com/cgi-bin/help?id=28 " ,我觉得QQ邮箱SMTP服务应该是要求得开启SSL加密,至于另一种加密方式我没有选,因为报错中要求的是“SSL”。)

3.接下来的Username 是开启了SMTP服务的QQ邮箱账号(带有@qq.com),Password需要填的是在开启QQ邮箱SMTP服务过程中系统给你的那个16位的密码,而不是你自己的QQ密码,这里一定要注意(包括在用Foxmail的时候输入的密码也是这个16位的密码)。

4.最后添加一个邮箱账号,进行测试,最好是在下面的“Logging”里面勾选“Logging everything”这样可以清楚的看到在发送邮件过程中哪一步出错了,这样可以更快、更准确的找到错误所在,便于错误的解决。

5.以上我没有特别注明的步骤和博主的步骤一模一样,照着操作就行了。亲测成功了。另外就是发现了这个论坛终于支持了图片上传的功能。我也是今天才完成了这个同样的功能,很好用。附上一张我收到的测试邮件的图片:

很不错的补充,对于使用QQ邮箱的用户来讲操作性很强,赞!