实战Centos下Sendmail邮件发送

博客停用了近半年,数据被该死的burst vps给坑掉了,只能恢复到2012年3月份。

最近重新购买了vps,也安装了Lnmp环境。今天把数据恢复了,博客也运转正常了,但是自动回复的功能还是不能用,使用探针检测邮件功能,发现不正确。因此只能手动解决它了。

首先我们检查服务器是否已经安装Sendmail。

rpm -qa sendmail

yum -y install sendmail命令安装一次。

接着查看Sendmail的运行情况/etc/init.d/sendmail status

如果程序没有运行,则使用/etc/init.d/sendmail start启动它。

接下来,配置php.ini文件,将sendmail_path修改为sendmail_path = /usr/sbin/sendmail -t -i即可。

;http://php.net/sendmail-path
sendmail_path = /usr/sbin/sendmail -t -i

然后重启你的php再试试吧。

PHP-FPM状态管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}


最后附上邮件自动回复功能参考文件:整理: WordPress 评论回复邮件通知代码

// 邮件通知 
function comment_mail_notify($comment_id) {
     $comment = get_comment($comment_id);//根据id获取这条评论相关数据
     $content=$comment->comment_content;
     //对评论内容进行匹配
     $match_count=preg_match_all('//si',$content,$matchs);
     if($match_count>0){//如果匹配到了
         foreach($matchs[1] as $parent_id){//对每个子匹配都进行邮件发送操作
             SimPaled_send_email($parent_id,$comment);
         }
     }elseif($comment->comment_parent!='0'){//以防万一,有人故意删了@回复,还可以通过查找父级评论id来确定邮件发送对象
         $parent_id=$comment->comment_parent;
         SimPaled_send_email($parent_id,$comment);
     }else return;
 }
add_action('comment_post', 'comment_mail_notify');

function SimPaled_send_email($parent_id,$comment){//发送邮件的函数
     $admin_email = get_bloginfo ('admin_email');//管理员邮箱
     $parent_comment=get_comment($parent_id);//获取被回复人(或叫父级评论)相关信息
     $author_email=$comment->comment_author_email;//评论人邮箱
     $to = trim($parent_comment->comment_author_email);//被回复人邮箱
     $spam_confirmed = $comment->comment_approved;
     if ($spam_confirmed != 'spam' && $to != $admin_email && $to != $author_email) {
         $wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])); // e-mail 發出點, no-reply 可改為可用的 e-mail.
         $subject = '您在 [' . get_option("blogname") . '] 的留言有了回应';
         $message = '';
         $from = "From: \"" . get_option('blogname') . "\" < $wp_email>";
         $headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";
         wp_mail( $to, $subject, $message, $headers );
     }
 }

There are no comment yet.

HTML tag cannot be used in this comment.