首页 > wordpress > WP-DB-Backup使用PHPMailer发送备份邮件

WP-DB-Backup使用PHPMailer发送备份邮件

Wordpress的数据库备份插件WP-DB-Backup是非常有用的工具,其中一个有用的功能就是能定时(或者手工)将你的数据库备份发送到你指定的信箱里面去。

由于我的机器没有配置SMTP服务,所以直接调用没有办法使用这个功能。幸好Wordpress缺省带了PHPMailer,参考让 WordPress 通过 SMTP 发送邮件,我使用了其中的Configure SMTP,很容易就把SMTP给配置好了,发送测试邮件成功。

但是使用WP-DB-Backup的时候还是不能正常发送邮件,因为它使用的还是本地的SMTP服务,通过Configure SMTP配置的选项不起作用,简单研究了一下代码,发现只要进行简单的修改就可以使得Configure SMTP配置生效。

我使用的是WP-DB-Backup v2.2.1,在第931行,通过phpmailer发送邮件之前,加入如下这行:

//增加如下一行代码,发送之前要求Configure SMTP对phpmailer进行设置 do_action_ref_array( phpmailer_init, array( &$phpmailer ) ); //发送邮件,这是原来的代码 $result = @$phpmailer->Send();

保存以后,再测试WP-DB-Backup的邮件发送,成功!

  1. 2008年11月8日18:38 | #1

    Спасибо за текст! Очень понравилось

  2. Poiftesee
    2008年11月13日05:13 | #2

    Спасибо за пост! Добавил блог в RSS-ридер, теперь читать буду регулярно..

  3. 2008年11月17日03:23 | #3

    感谢, 一直犯难呢..可是DB Back里面用了PHPmailer类, 如果没有用呢, 比如WP-留言的那个…不知道怎么修改

  4. 牛小哥
    2008年11月17日09:21 | #4

    你是指WP留言的邮件通知么?
    如果是,使用了Configure SMTP,把SMTP给配置好了,就可以发送邮件,不需要对代码另外进行修改。

  5. 2008年11月17日10:33 | #5

    感谢… 我昨晚没有说清楚, 我现在可以收到通知, 但是留言者收不到, 不知道你用过Wordpress Thread Comment这个插件没有, 是一个留言的插件, 默认用的是WP-mail函数, 我不知道怎么修改才能把它弄成SMTP..

  6. 牛小哥
    2008年11月17日11:12 | #6

    没有用过,等下有时间我帮你看看。

  7. 牛小哥
    2008年11月17日11:13 | #7

    你回复留言的时候会出错么?我每次回复时会出错,但回复成功

  8. 2008年11月17日11:31 | #8

    貌似你的Blog有问题…我也是的…

  9. 2008年11月17日11:32 | #9

    现在可以了….

  10. 牛小哥
    2008年11月17日11:33 | #10

    嘿嘿,真的可以了,我刚刚改了WP代码

  11. 2008年11月17日11:37 | #11

    有Gtalk吗? 不知道那个留言系统修改有没有可能

  12. 牛小哥
    2008年11月17日12:01 | #12

    我现在不用gtalk啦,你可以用QQ找我,QQ: 62848
    肯定可以啦,我现在帮你看看吧

  13. 牛小哥
    2008年11月17日13:24 | #13

    我新发了条日志,你下载那个文件然后试试吧

  14. 2008年11月17日15:40 | #14

    你的问题太奇怪了, 应该说configure好了之后, 可以直接发信的, 不需要再做任何修改的.

  15. 2008年11月17日21:19 | #15

    插件用的是自带的邮件函数, 如果增加一个判断, 能用上PHPmailer类来发送就可以解决在主机上没有邮箱的用户的难题…

  16. 2008年11月30日17:27 | #16

    您好,先生,我的是Win主机,IIS环境,怎么始终设置不成功呢,不能发送邮件,所以那个备份数据库的插件自然就没法发邮件了啊。。好郁闷啊。。
    能给点指点吧,不尽感激啊。。

  17. 牛小哥
    2008年11月30日20:39 | #17

    我也是WIN+IIS,可以设置成功的。你首先保证CONFIG SMTP配置正确,然后用WP-DB-BACKUP测试一下能否正常发送。测试之前保证WP-DB-BACKUP已经生成了备份文件。(具体你看下DB-BACKUP的帮助文档)

  18. 2008年12月1日09:38 | #18

    先生,我发送的测试邮件发送之后提示:
    Test e-mail sent.
    The body of the e-mail mentions this timestamp: 2008-12-01
    应该是已经发送成功了。可就是收不到邮件。。
    是不是安装好这个CONFIG SMTP插件之后除了设置HOST POT以及SMTP user等之外还需要做什么设置啊。。
    多谢了。

  19. 2008年12月1日09:40 | #19

    设置之后使用DB-Backup插件备份时提示的错误如下:
    发现以下错误: date() [function.date]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘UTC’ for ‘8.0/no DST’ instead
    不知道该怎么办啊。。请先生指点,多谢了。。

  20. 牛小哥
    2008年12月1日12:35 | #20

    有几个方式来帮助你解决这个问题:
    1. 写个测试程序来试试你的PHPMailer是否能发送邮件。文件放在wp-includes目录下:
    < ?php
    include ('class-phpmailer.php');
    include ('class-smtp.php');
    $mail=new PHPMailer();
    // 设置PHPMailer使用SMTP服务器发送Email
    $mail->IsSMTP();
    // 设置邮件的字符编码,若不指定,则为’UTF-8′
    $mail->CharSet=’GB2312′;
    // 添加收件人地址,可以多次使用来添加多个收件人
    $mail->AddAddress(‘xxx@yahoo.com’);
    // 设置邮件正文
    $message=’用WordPress的代码发送的Email’;
    $mail->Body=$message;
    // 设置邮件头的From字段。
    // 对于网易的SMTP服务,这部分必须和你的实际账号相同,否则会验证出错。
    $mail->From=’xxxxxx@163.com’;
    // 设置发件人名字
    $mail->FromName=’Wang Jinbo’;
    // 设置邮件标题
    $mail->Subject=’Test Mail’;
    // 设置SMTP服务器。这里使用网易的SMTP服务器。
    $mail->Host=’smtp.163.com’;
    // 设置为“需要验证”
    $mail->SMTPAuth=true;
    // 设置用户名和密码,即网易邮件的用户名和密码。
    $mail->Username=’xxxxxx’;
    $mail->Password=’xxxxxx’;
    // 发送邮件。
    $mail->Send();
    ?>

    2. 用我最新版的class-phpmailer.PHP替换老的文件,下载地址是
    http://www.niucool.com/downloads/class-phpmailer.rar

  21. 2008年12月2日16:17 | #21

    搞不成功,所有方法都试过了。可是不知道什么原因,还是这样算了吧。最近可能是rp问题。。等过一段时间再试试。。

  22. 牛小哥
    2008年12月2日22:18 | #22

    没帮上你忙,祝你好运了!

  1. 本文目前尚无任何 trackbacks 和 pingbacks.