mail()方法无法发送邮件

看了教程:利用php的mail()函数发送邮件__瞳孔的博客-CSDN博客_mail.php
然后我就去实践了

教程里说是要在php.ini里先修改smtp配置,但是我用了ini_set方法,效果应该是一样的。


    //设置SMTP服务器地址
    ini_set('SMTP','smtp.163.com');
    //设置SMTP服务器端口
    ini_set('smtp_port','25');
    //设置邮件发送者签名
    ini_set('sendmail_from','duxian_studio@163.com');

?>

    $txt = "First line of textnSecond line of text";
    $txt = wordwrap($txt,70);
    if(mail("hack_chenzhisheng@163.com","My subject",$txt)){
        echo "邮件投递成功!";
    }else{
        echo "邮件投递失败!";
    }
?>

以上代码运行结果输出:

img


所以代表了mail()返回值是true,但是我检查过我的邮箱,里面并没有找到这个邮件(垃圾箱也找过了)。

在某个PHP交流群里提过问,但是目前还是没有办法解决.

img

求解决,谢谢~

别用这种发送了太老了,没什么实际意义
现在都用phpmailer去发邮箱
这个我写的demo你可以看看

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

$mail = new PHPMailer(true); // Passing true enables exceptions
try {
//服务器配置
$mail->CharSet ="UTF-8"; //设定邮件编码
$mail->SMTPDebug = 0; // 调试模式输出
$mail->isSMTP(); // 使用SMTP
$mail->Host = 'smtp.mxhichina.com'; // SMTP服务器
$mail->SMTPAuth = true; // 允许 SMTP 认证
$mail->Username = '邮箱用户名'; // SMTP 用户名 即邮箱的用户名
$mail->Password = '密码或者授权码'; // SMTP 密码 部分邮箱是授权码(例如163邮箱)
//其中,mail_port与mail_encryption是对应关系,如“587与tls","465与ssl"对应。
$mail->SMTPSecure = 'ssl'; // 允许 TLS 或者ssl协议
$mail->Port = 465; // 服务器端口 25 或者465 具体要看邮箱服务器支持

 $mail->setFrom('xxxx@163.com', 'Mailer');  //发件人
 $mail->addAddress('564196401@qq.com', '向宇');  // 收件人
 //$mail->addAddress('xxx@example.com');  // 可添加多个收件人
 $mail->addReplyTo('xxxx@163.com', 'info'); //回复的时候回复给哪个邮箱 建议和发件人一致
 //$mail->addCC('cc@example.com');         //抄送
 //$mail->addBCC('bcc@example.com');      //密送

 //发送附件
 // $mail->addAttachment('../xy.zip');         // 添加附件
 // $mail->addAttachment('../thumb-1.jpg', 'new.jpg');   // 发送附件并且重命名

 //Content
 $mail->isHTML(true);   // 是否以HTML文档格式发送
 $mail->Subject = '这里是邮件标题' . time();
 $mail->Body    = '<h1>这里是邮件内容</h1>' ;
 $mail->AltBody = '如果邮件客户端不支持HTML则显示此内容';

 $mail->send();
 echo '邮件发送成功';

} catch (Exception $e) {
echo '邮件发送失败: ', $mail->ErrorInfo;
}