用phpmailer邮件类,报错请高人进,以后给补分

lyp71887188 2009-08-18 04:54:49
<?php
/*******************************
* 作者:李英江
* 日期:2006-12-7
*******************************/
require("phpmailer/class.phpmailer.php");
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" >";
function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp.yahoo.cn"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "lyp7188_lyb7188"; // SMTP username 注意:普通邮件认证不需要加 @域名
$mail->Password = "******"; // SMTP password
$mail->From = "lyp7188_lyb7188@yahoo.cn"; // 发件人邮箱
$mail->FromName = "yahoo.cn管理员"; // 发件人
$mail->CharSet = "utf-8"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名
$mail->AddReplyTo("lyp7188_lyb7188@yahoo.cn","yahoo.cn");
//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
$mail->IsHTML(true); // send as HTML
// 邮件主题
$mail->Subject = $subject;
// 邮件内容
$mail->Body = '
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"></head>
<body>
欢迎来到<a href="http://www.yahoo.cn">http://www.yahoo.cn</a> <br /><br />
感谢您注册为本站会员!<br /><br />
</body>
</html>
';
$mail->AltBody ="text/html";
if(!$mail->Send())
{
echo "邮件发送有误 <p>";
echo "邮件错误信息: " . $mail->ErrorInfo;
exit;
}
else {
echo "$user_name 邮件发送成功!<br />";
}
}
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
smtp_mail('lyp7188_lyb7188@yahoo.cn', '欢迎来到yahoo.cn!', 'NULL', 'yahoo.cn', 'username');
?>


报错信息:

Warning: fputs(): supplied argument is not a valid stream resource in D:\AppServ\www\phpMailer\class.smtp.php on line 209
邮件发送有误
邮件错误信息: SMTP Error: Could not connect to SMTP host.

不好意思我是新手,没有分给大家。
以后我会再补上的。谢谢了。
...全文
324 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyp71887188 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ding314127 的回复:]
代码没有问题,我的代码和你一样,用的是公司的smtp服务器发送正常。
感觉问题不在代码。建议你先了解一下163和雅虎的邮件系统是否支持smtp发送邮件。
[/Quote]

谢谢,是不是因为我的本地没有smtp服务器的原因啊。

class.phpmailer.php里是smtp的配置吗?
ding314127 2009-08-19
  • 打赏
  • 举报
回复
代码没有问题,我的代码和你一样,用的是公司的smtp服务器发送正常。
感觉问题不在代码。建议你先了解一下163和雅虎的邮件系统是否支持smtp发送邮件。
lyp71887188 2009-08-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 cunningboy 的回复:]
$mail->Host = "smtp.163.cn"; // SMTP servers
163的SMTP服务器应该是smtp.163.com
[/Quote]


谢谢楼上一直对我的帮助

我现在把smtp.163.cn换成smtp.163.com他,还是报错。。
邮件发送有误
邮件错误信息: SMTP Error: Could not connect to SMTP host.
CunningBoy 2009-08-18
  • 打赏
  • 举报
回复
$mail->Host = "smtp.163.cn"; // SMTP servers
163的SMTP服务器应该是smtp.163.com
lyp71887188 2009-08-18
  • 打赏
  • 举报
回复
这是用163的,不知道哪有不对。谢谢了。

<?php
/*******************************
* 作者:李英江
* 日期:2006-12-7
*******************************/
require("phpmailer/class.phpmailer.php");
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" >";
function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) {
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "smtp.163.cn"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "lyp7188"; // SMTP username 注意:普通邮件认证不需要加 @域名
$mail->Password = "*****"; // SMTP password 这里不是smtp的密码吗?
$mail->From = "lyp7188@163.com"; // 发件人邮箱
$mail->FromName = "163.com管理员"; // 发件人
$mail->CharSet = "utf-8"; // 这里指定字符集!
$mail->Encoding = "base64";
$mail->AddAddress("lyp7188@163.com","username"); // 收件人邮箱和姓名
$mail->AddReplyTo("lyp7188@163.com","163.com");
//$mail->WordWrap = 50; // set word wrap
//$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
$mail->IsHTML(true); // send as HTML
// 邮件主题
$mail->Subject = $subject;
// 邮件内容
$mail->Body = '
<html><head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=GB2312"></head>
<body>
欢迎来到<a href="http://www.163.com">http://www.163.com</a> <br /><br />
感谢您注册为本站会员!<br /><br />
</body>
</html>
';
$mail->AltBody ="text/html";
if(!$mail->Send())
{
echo "邮件发送有误 <p>";
echo "邮件错误信息: " . $mail->ErrorInfo;
exit;
}
else {
echo "$user_name 邮件发送成功!<br />";
}
}
// 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名)
smtp_mail('lyp7188@163.com', '欢迎来到163.com!', 'NULL', '163.com', 'username');
?>



报错:
邮件发送有误
邮件错误信息: SMTP Error: Could not connect
lyp71887188 2009-08-18
  • 打赏
  • 举报
回复
谢谢啦,我改下贴上来你帮我看看,真的很感谢,
本身我还真不知道这些。
CunningBoy 2009-08-18
  • 打赏
  • 举报
回复
虽然你有做$mail->Password = "******"; // SMTP password
但是,你哪一步登录了smtp服务器?
CunningBoy 2009-08-18
  • 打赏
  • 举报
回复
我没看见你的密码设置在什么地方,163等smtp是需要密码才能登陆的。
lyp71887188 2009-08-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cunningboy 的回复:]
你用的是yahoo的SMTP服务器,看一下它的SMTP服务器使用说明,好像yahoo不对普通用户开发smtp服务的。
[/Quote]

谢谢了,可我一开始用的是163有,也是报错,连不上smtp服务器。

真是急死了。
CunningBoy 2009-08-18
  • 打赏
  • 举报
回复
你用的是yahoo的SMTP服务器,看一下它的SMTP服务器使用说明,好像yahoo不对普通用户开发smtp服务的。
PHPMailer邮件的使用 第一步:需要下载PHPMailer文件包phpmailer-1.73.tar.gz 来自开源社区: http://phpmailer.sourceforge.net/ 第二步:确认你的服务器系统已经支持socket 如下图,通过phpinfo();查看是否支持sockets   如果没有这一项就注意: socket 是属于PHP扩展部分,编译时必须给定一个用于./configure --enable-sockets 的配置选项。 第三步:把文件解压到你的web服务器目录下,调用就可以了,说明:首先包含 class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体见下面的示例代码: phpmailer/class.phpmailer.php"); function smtp_mail ( $sendto_email, $subject, $body, $extra_hdrs, $user_name) { $mail = new PHPMailer(); $mail->IsSMTP(); // send via SMTP $mail->Host = "200.162.244.66"; // SMTP servers $mail->SMTPAuth = true; // turn on SMTP authentication $mail->Username = "yourmail"; // SMTP username 注意:普通邮件认证不需要加 @域名 $mail->Password = "mailPassword"; // SMTP password $mail->From = "yourmail@163.com"; // 发件人邮箱 $mail->FromName = "163.com管理员"; // 发件人 $mail->CharSet = "GB2312"; // 这里指定字符集! $mail->Encoding = "base64"; $mail->AddAddress($sendto_email,"username"); // 收件人邮箱和姓名 $mail->AddReplyTo("yourmail@163.com","163.com"); //$mail->WordWrap = 50; // set word wrap //$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment //$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); $mail->IsHTML(true); // send as HTML // 邮件主题 $mail->Subject = $subject; // 邮件内容 $mail->Body = ' 欢迎来到http://www.163.com

感谢您注册为本站会员!

'; $mail->AltBody ="text/html"; if(!$mail->Send()) { echo "邮件发送有误

"; echo "邮件错误信息: " . $mail->ErrorInfo; exit; } else { echo "$user_name 邮件发送成功!
"; } } // 参数说明(发送到, 邮件主题, 邮件内容, 附加信息, 用户名) smtp_mail('yourmail@163.com', '欢迎来到163.com!', 'NULL', '163.com', 'username'); ?> 要注意的内容:   1. 邮件的字符集设置, $mail->CharSet = "GB2312"; // 这里指定字符集!在这里我只指定为GB2312因为这样Outlook能正常显示邮件主题,我尝试过设为utf-8,但在Outlook下显示乱码。   2. 如果是发送html格式的邮件,那么记得也指定为   3. 如果你想用它来群发邮件的话,记得修改包含文件函数,如:   require("phpmailer/class.phpmailer.php");   改为   require_once("phpmailer/class.phpmailer.php");   否则的话会产生的重定义。 //使用心得 用sina的刚注册就可以发送 $mail->Host = "smtp.sina.com"; // SMTP servers 用163的刚注册不能发送,得用注册时间长的才可以用

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧