Home  >  Article  >  Backend Development  >  WordPress cannot send emails after changing space?

WordPress cannot send emails after changing space?

WBOY
WBOYOriginal
2016-12-01 00:25:561872browse

  1. Problem description

Due to business needs, the subject's company migrated the company's website (developed based on WordPress) from the Hong Kong server to the domestic server.
The server environment was built by the subject himself, which is the same as the Hong Kong server. After the migration, I found that the user could not receive emails. I tried to send emails to myself. Although the prompt was successful, I still could not receive the emails.

  1. Code

    <code>   <?php 
       </code>

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

    //wp_mail, function for sending emails, returns Boolean value
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    <code>{
            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!';
    </code>

    ?>

  2. This code outputs ‘email was sent!’ on both the Hong Kong server and the domestic server. However, when I check the mailbox, I only receive emails sent from the Hong Kong server.

Ask God for guidance!

Reply content:

  1. Problem description

Due to business needs, the subject's company migrated the company's website (developed based on WordPress) from the Hong Kong server to the domestic server.
The server environment was built by the subject himself, which is the same as the Hong Kong server. After the migration, I found that the user could not receive emails. I tried to send emails to myself. Although the prompt was successful, I still could not receive the emails.

  1. Code

    <code>   <?php 
       </code>

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

    //wp_mail, function for sending emails, returns Boolean value
    $mail = wp_mail( $to, $subject, $body);

    if (!$mail)

    <code>{
            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!';
    </code>

    ?>

  2. This code outputs ‘email was sent!’ on both the Hong Kong server and the domestic server. However, when I check the mailbox, I only receive emails sent from the Hong Kong server.

Ask God for guidance!

//Send mail using SMTP
function mail_smtp( $phpmailer ){
$phpmailer->From = "xxx@example .com"; //Sender
$phpmailer->FromName = "xxx"; // Sender's nickname
$phpmailer->Host = "smtp.exmail.qq.com"; //SMTP server address
$phpmailer->Port = 465; //SMTP port
$phpmailer->SMTPSecure = " ssl"; //SMTP encryption method, commonly used ones are ssl/tls, generally port 25 is not filled in, port 465 is ssl
$phpmailer->Username = "xxx@example .com"; //Email account, generally and The recipient is the same
$phpmailer->Password = 'xxx'; //Email password
$phpmailer->IsSMTP(); //Use SMTP to send
$phpmailer->SMTPAuth = true; //Enable SMTPAuth service
}
add_action('phpmailer_init','mail_smtp');

I checked the email log and found that it wasn’t that it couldn’t be sent, but that it was rejected. Since the mail() function is easily rejected or sent to the trash, using SMTP to send emails is a good choice.

This must have nothing to do with space. You need to check whether the mail server is normal first

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn