更换空间后wordpress 无法发送邮件?

php中文网
发布: 2016-12-01 00:25:56
原创
2180人浏览过

  1. 问题描述

题主公司由于业务需要,将公司网站(基于wordpress开发)从香港服务器迁移至国内服务器,
服务器环境由题主自己搭建,与香港服务器相同。迁移后,发现用户无法接受到邮件,自己尝试发邮件给自己,虽然提示成功,但还是无法收到邮件。

  1. 代码

       <?php 
       
    登录后复制
    登录后复制

    $to = 'xxxx@qq .com';
    $subject = 'The subject';
    $body = 'The email body content';

    //wp_mail, 发送邮件的函数,返回布尔值
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    {
            global $ts_mail_errors;
            global $phpmailer;
                if (!isset($ts_mail_errors)) 
                    $ts_mail_errors = array();
                if (isset($phpmailer)) 
                {
                $ts_mail_errors[] = $phpmailer->ErrorInfo;
                print_r($ts_mail_errors);
                }
     }
    else echo 'email was sent!';
    
    登录后复制
    登录后复制

    ?>

  2. 此段代码,在香港服务器上,和国内服务器上,都输出‘email was sent!’, 但是查看邮箱,仅收到香港服务器发送过来的邮件。

求大神指导!

回复内容:

  1. 问题描述

题主公司由于业务需要,将公司网站(基于wordpress开发)从香港服务器迁移至国内服务器,
服务器环境由题主自己搭建,与香港服务器相同。迁移后,发现用户无法接受到邮件,自己尝试发邮件给自己,虽然提示成功,但还是无法收到邮件。

  1. 代码

       <?php 
       
    登录后复制
    登录后复制

    $to = 'xxxx@qq .com';
    $subject = 'The subject';
    $body = 'The email body content';

    //wp_mail, 发送邮件的函数,返回布尔值
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    {
            global $ts_mail_errors;
            global $phpmailer;
                if (!isset($ts_mail_errors)) 
                    $ts_mail_errors = array();
                if (isset($phpmailer)) 
                {
                $ts_mail_errors[] = $phpmailer->ErrorInfo;
                print_r($ts_mail_errors);
                }
     }
    else echo 'email was sent!';
    
    登录后复制
    登录后复制

    ?>

  2. 此段代码,在香港服务器上,和国内服务器上,都输出‘email was sent!’, 但是查看邮箱,仅收到香港服务器发送过来的邮件。

求大神指导!

// 使用SMTP发送邮件
function mail_smtp( $phpmailer ){
$phpmailer->From = "xxx@example .com"; //发件人
$phpmailer->FromName = "xxx"; //发件人昵称
$phpmailer->Host = "smtp.exmail.qq.com"; //SMTP服务器地址
$phpmailer->Port = 465; //SMTP端口
$phpmailer->SMTPSecure = "ssl"; //SMTP加密方式,常用的有ssl/tls,一般25端口不填,端口465天ssl
$phpmailer->Username = "xxx@example .com"; //邮箱帐号,一般和发件人相同
$phpmailer->Password = 'xxx'; //邮箱密码
$phpmailer->IsSMTP(); //使用SMTP发送
$phpmailer->SMTPAuth = true; //启用SMTPAuth服务
}
add_action('phpmailer_init','mail_smtp');

查看了邮件的日志,其实不是发送不出去,是被拒收了。由于mail()函数很容易被拒收,或者打到垃圾箱,采用SMTP发送邮件,是个不错的选择。

这肯定和空间无关,你要先检查邮件服务器是否正常

WPS零基础入门到精通全套教程!
WPS零基础入门到精通全套教程!

全网最新最细最实用WPS零基础入门到精通全套教程!带你真正掌握WPS办公! 内含Excel基础操作、函数设计、数据透视表等

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号