php邮件发送的错误 怎么回事
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php邮件发送的错误 怎么回事相关的知识,希望对你有一定的参考价值。
Trying to smtp.qq.com:25
220 smtp.qq.com Esmtp QQ Mail Server
Connected to relay host smtp.qq.com
> HELO localhost
250 smtp.qq.com
> AUTH LOGIN MTMxOTU0NzAwMQ==
334 UGFzc3dvcmQ6
> cXFxd3d3ZWVl
535 Error: authentication failed, system busy
Error: Remote host returned "535 Error: authentication failed, system busy"
Error: Error occurred while sending HELO command.
Error: Cannot send email to <764741311@qq.com>
Disconnected from remote host
对不起,邮件发送失败!请检查邮箱填写是否有误。点此返回
<?php
/**
* 注:本邮件类都是经过我测试成功了的,如果大家发送邮件的时候遇到了失败的问题,请从以下几点排查:
* 1. 用户名和密码是否正确;
* 2. 检查邮箱设置是否启用了smtp服务;
* 3. 是否是php环境的问题导致;
* 4. 将26行的$smtp->debug = false改为true,可以显示错误信息,然后可以复制报错信息到网上搜一下错误的原因;
* 5. 如果还是不能解决,可以访问:http://www.daixiaorui.com/read/16.html#viewpl
* 下面的评论中,可能有你要找的答案。
*/
require_once "email.class.php";
//******************** 配置信息 ********************************
$smtpserver = "smtp.qq.com";//SMTP服务器
$smtpserverport =25;//SMTP服务器端口
$smtpusermail = "1319547001@qq.com";//SMTP服务器的用户邮箱
$smtpemailto = $_POST['toemail'];//发送给谁
$smtpuser = "1319547001";//SMTP服务器的用户帐号
$smtppass = "qqqwwweee";//SMTP服务器的用户密码
$mailtitle = $_POST['title'];//邮件主题
$mailcontent = "<h1>".$_POST['content']."</h1>";//邮件内容
$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
//************************ 配置信息 ****************************
$smtp = new smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
$smtp->debug = true;//是否显示发送的调试信息
$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
echo "<div style='width:300px; margin:36px auto;'>";
if($state=="")
echo "对不起,邮件发送失败!请检查邮箱填写是否有误。";
echo "<a href='index.html'>点此返回</a>";
exit();
echo "恭喜!邮件发送成功!!";
echo "<a href='index.html'>点此返回</a>";
echo "</div>";
?>
从 PHP 发送邮件 - 是我的错误还是邮件服务器的错误?
【中文标题】从 PHP 发送邮件 - 是我的错误还是邮件服务器的错误?【英文标题】:Sending mail from PHP - is the error at my end, or the Mail Server's? 【发布时间】:2012-01-15 00:24:24 【问题描述】:我正在尝试从我的 PHP 脚本通过 SMTP 发送电子邮件,通过 CodeIgniter 运行。
调试输出见下文。这是否表明我的 PHP (Unable to send email using PHP SMTP
) 或他们的末尾 (hello: 250-parrot.email-provider.co.uk
- 这意味着我已经连接到他们的服务器,因为我输入的实际 SMTP 服务器是 mail2.email-provider.co.uk
,所以它似乎连接并重定向到这个parrot
东西)。
我已确认我的 SMTP 详细信息是正确的,但它仍然说它无法验证密码 - 即使这个相同的密码在我的本地邮件客户端中有效。
我已经更改了我的网站名称和提供商的名称(如果是我的错,我不想点名羞辱!):
220 parrot.email-provider.co.uk ESMTP Postfix
hello: 250-parrot.email-provider.co.uk
250-PIPELINING
250-SIZE 512000000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN CRAM-MD5 DIGEST-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
Failed to authenticate password. Error: 535 5.7.8 Error: authentication failed: UGFzc3dvcmQ6
from: 250 2.1.0 Ok
to: 554 5.7.1 : Relay access denied
The following SMTP error was encountered: 554 5.7.1 : Relay access denied
to: 554 5.7.1 : Relay access denied
The following SMTP error was encountered: 554 5.7.1 : Relay access denied
to: 554 5.7.1 : Relay access denied
The following SMTP error was encountered: 554 5.7.1 : Relay access denied
data: 554 5.5.1 Error: no valid recipients
The following SMTP error was encountered: 554 5.5.1 Error: no valid recipients
221 2.7.0 Error: I can break rules, too. Goodbye.
The following SMTP error was encountered: 221 2.7.0 Error: I can break rules, too. Goodbye.
Unable to send email using PHP SMTP. Your server might not be configured to send mail using this method.
User-Agent: CodeIgniter
Date: Wed, 7 Dec 2011 13:30:16 +0000
From: "Mysite.com"
Return-Path:
To: myemail@email.com
Cc: myotheremail@email.com
Subject: =?utf-8?Q?The_Subject?=
Reply-To: "mail@mysite.com"
X-Sender: mail@mysite.com
X-Mailer: CodeIgniter
X-Priority: 3 (Normal)
Message-ID: <4edf6a68626d6@mysite.com>
Mime-Version: 1.0
【问题讨论】:
您的实际 PHP 代码是什么样的?尤其是设置身份验证的部分。 【参考方案1】:可以是:
密码错误。
服务器不允许/识别的登录方法。
【讨论】:
【参考方案2】:如果您使用的是 codeigniter 邮件对象,请尝试: $this->email->print_debugger()
蛮力法,从应用程序上一层,放入log_message/trace等,调试实际的codeigniter代码,看看是怎么回事。
【讨论】:
【参考方案3】:我遇到了同样的问题。我已将一切设置好并收到相同的消息。
问题在于,在使用$this->email->initialize($config)
应用smtp 设置之前,我已经使用$this->email->to
设置了to
地址。在我将这条线移到所有其他设置之前,一切都按预期进行。
【讨论】:
以上是关于php邮件发送的错误 怎么回事的主要内容,如果未能解决你的问题,请参考以下文章
我们设置的邮件服务器,只能接收邮件不能发送邮件,是怎么回事。