9
回答
用sendmail()函数发送邮件,发送成功,但收信人收不到邮件,是什么原因
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

@妖魔舞 你好,想跟你请教个问题:用sendmail()函数发送邮件,发送成功,但收信人收不到邮件,是什么原因

<无标签>
举报
秋天的风
发帖于5年前 9回/3K+阅
共有9个答案 最后回答: 5年前
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<?php

include_once "class/class.phpmailer.php";
function sendmail($to,$subject,$content) {
 $mail = new PHPMailer();
 // 以下设置 - 不要更改!
 $mail->IsSMTP();
 $mail->SMTPAuth = true;
 $mail->IsHTML(true);
 $mail->CharSet ="GB2312"; 
 $mail->Encoding = "base64";
 // 以下设置 - 不要更改!   
 $mail->AddAddress($to, "");
 $mail->Subject = $subject; 
 $mail->Body    = $content;   
 // 以下 5 个变量值必须据实修改
 $host    = '206.85.192.166';
 $username = 'webmaster@lxbsc.cn';
 $password = '******';       
 $from    = 'webmaster@lxbsc.cn'; 
 $fromname = '测试邮件'; 
 //$mail->AddReplyTo("", "");     
 //$mail->AddAttachment("ok.jpg"); //附件
 // 以下设置 - 不要更改! 
 $mail->Host    = $host;                             
 $mail->Username = $username;   
 $mail->Password = $password;               
 $mail->From    = $from;         
 $mail->FromName = $fromname;                 
 // 发送并返回相应信息
 if(!$mail->Send()){ return 0; exit(); }
 return 1;
}

?>

<form action="" method="post" name="f_sendmail" id="f_sendmail">
<input name="t_from" type="text" disabled="disabled" id="t_from" value="webmaster@lxbsc.cn" />
发件人
<p>
  <input name="t_to" type="text" id="t_to" />
收件人<p><input name="b_sendmail" type="submit" id="b_sendmail" value=" 发 送 " />
</form>

<?php
/**先设置 $to $subject $content 这三个变量的值
  再调用 sendmail 函数来发送邮件
**/
if($_POST[b_sendmail]){
 $to = htmlspecialchars(addslashes($_POST[t_to]));
 $subject = '天马博客:一封测试邮件↖(^ω^)↗';
 $content = '恭喜你,你已看到了PHP发送邮件的效果。 -- <a href="http://www.php95.com" target="_blank">天马博客</a>';
 if(sendmail($to,$subject,$content)) {
  echo "发送到 $to 的邮件已成功!";
 }else{
  echo '发送失败!';
 }
}
?>

 

</body>
</html>

尝试自己给自己发邮件,或让对方设置你的邮件地址为白名单,或叫他在垃圾箱找找看!

对方收不到邮件的原因有N多种:

1、有些邮件服务器拒收非固定IP的邮件(反垃圾邮件措施之一)

2、收件人地址不存在或拼写错误

3、收件人空间不足

4、其它N多原因……

--- 共有 5 条评论 ---
xmut回复 @秋天的风 : 没有单独的DEMO。你可以这样测试是不是程序问题,比如:①用QQ邮箱自己给自己发送邮件,若收到表示该QQ邮箱账号收发没问题;②将自己的QQ邮箱作为Java Mail的用户名等作为参数值,然后通过程序再次给自己的QQ邮箱。如果发送和接收成功,那么你的程序就没问题 5年前 回复
秋天的风回复 @xmut : 能不能发一个你测试成功的发邮件例子给我,我想测试一下是邮件服务器问题还是我的程序问题!! 5年前 回复
xmut这年头垃圾邮件满天飞,已经不是随便写个程序就让人随心所欲发送(群发)了! 5年前 回复
xmut回复 @秋天的风 : 使用固定IP、叫对方将自己的邮件地址列入白名单、跟对方服务器的客服或技术人员沟通…… 5年前 回复
秋天的风我的邮件能够发出去,就是收件人收不到,如果被当成了垃圾邮件,那要怎么解决? 5年前 回复

引用来自“xmut”的答案

尝试自己给自己发邮件,或让对方设置你的邮件地址为白名单,或叫他在垃圾箱找找看!

对方收不到邮件的原因有N多种:

1、有些邮件服务器拒收非固定IP的邮件(反垃圾邮件措施之一)

2、收件人地址不存在或拼写错误

3、收件人空间不足

4、其它N多原因……

其它N多原因
顶部