🦄 2024 独立开发者训练营,一起创业!(早鸟优惠在6天后结束)查看介绍 / 立即报名 →

配置 Drupal 发邮件(Email)的方法 + 解决使用 sendmail 发邮件慢的问题

你买了台服务器,配置好了 Web 环境安装了 Drupal,但是你发现 Drupal 无法发送邮件。如果你跟我们一样,花了一天时间找不到原因,并且使用的是 Linux 系统( CentOS ),可以试试下面这个方法。Drupal 默认会使用 sendmail 发送邮件,sendmail 其实是个小程序,可以运行在系统里面,你需要先确认系统里是否安装了 sendmail ,并且确定它已经启动了。

确定是不是安装了 sendmail:

service sendmail status

如果返回:

sendmail: 未被识别的服务

这说明我们的系统里面还没有安装 sendmail ,使用 yum 命令可以去安装它:

yum install sendmail

成功以后,你可以去启动 sendmail :

service sendmail start

返回:

Starting sendmail: [ OK ]
Starting sm-client: [ OK ]

说明已经成功的启动了 sendmail ,sendmail 默认的位置是在:

/usr/sbin/sendmail

我用的是阿里云服务器,启动 sendmail 的时候会特别的慢,这个问题一会儿我们再去解决。先再确认一下 sendmail 是否真正运行了:

service sendmail status

返回

sendmail (pid  9436) is running...
sm-client (pid  9444) is running...

这说明 sendmail 真正的运行了。现在,你的 Drupal 或者其它的应用就可以使用 sendmail 发送邮件了,不过,如果你发现在发送邮件的时候特别慢,比如在注册用户的时候,或者用户找回密码的时候,邮件可以发送成功,但是会把服务器搞崩溃,这时你需要再去编辑一下 hosts 文件:

vim /etc/hosts

这个文件里有可能已经有了一些内容,我把这个文件里的东西清空了,然后手工的加上下面这行代码:

127.0.0.1 localhost.localdomain localhost

这样应该可以解决 Drupal 发送邮件超级慢的问题。

几个提供发邮件的服务商

Drupal sendmail 服务器

评论

很有帮助, 好教程.

views 输出的node 如何根据 content access 的权限 覆写链接,views 覆写所有node链接 可以设置,但是 根据 content access 的权限 覆写链接 能给个思路么。

我觉得可以考虑覆盖 Views 使用的模板文件。

我用content access设定了各个node的权限,
然后用views提取,
把没有权限的node url重写,
我定义了views 提取title的 tpl,
如下:
<?php if (user_access("view")): ?>
<?php print $output; ?>
<?php else: ?>
<?php print $row->{$view->field['title']->field_alias};?>
<?php endif; ?>

但是只有内容作者 是正常 其他人都没有链接 包括有权限查看的,这里的if该怎么写?

希望能出mailgun等邮件服务的使用教程

在国内能用这种邮件服务吗?我之前了解过几个,都不能往国内发邮件。

我的服务器在国外 客户也是国外的
国内的话 有sendcloud是跟他们类似的,sohu出的

哦。明白了 :)

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点