发邮件不能成功,为什么呢

hthy 2003-10-16 11:15:27
服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for wangfangzheng@eyou.com
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Runtime.InteropServices.COMException: 服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for wangfangzheng@eyou.com

源错误:


行 35: myMail.Body = "Test";
行 36: SmtpMail.SmtpServer="202.194.22.25";
行 37: SmtpMail.Send(myMail);
行 38: }
行 39: #region Web 窗体设计器生成的代码


源文件: c:\inetpub\wwwroot\test\webform1.aspx.cs 行: 37

堆栈跟踪:


[COMException (0x8004020f): 服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for wangfangzheng@eyou.com
]

[TargetInvocationException: 调用的目标发生了异常。]
System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) +0
System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters) +473
System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +58

[HttpException (0x80004005): 未能访问“CDO.Message”对象。]
System.Web.Mail.LateBoundAccessHelper.CallMethod(Object obj, String methodName, Object[] args) +112
System.Web.Mail.CdoSysHelper.Send(MailMessage message) +1846
System.Web.Mail.SmtpMail.Send(MailMessage message) +153
test.WebForm1.SendMail() in c:\inetpub\wwwroot\test\webform1.aspx.cs:37
test.WebForm1.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\test\webform1.aspx.cs:23
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731


原码
MailMessage myMail=new MailMessage();
myMail.From = "wsfz20000@163.com";
myMail.To = "wangfangzheng@eyou.com";
myMail.Subject = "MailTest";
myMail.Priority = MailPriority.Normal;
myMail.BodyFormat = MailFormat.Text;
myMail.Body = "Test";
SmtpMail.SmtpServer="202.194.22.25";
SmtpMail.Send(myMail);
是不是服务器需要验证,如果是这样,怎么设置,谢谢


...全文
173 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Abac 2003-10-20
  • 打赏
  • 举报
回复
Jmail的例子,我觉得很方便,支持登录验证
jmail.MessageClass jmailobj=new jmail.MessageClass();

jmailobj.Logging=true;
jmailobj.Silent=true;

get ip
IPHostEntry ipEntry = Dns.GetHostByName("baoby");
IPAddress [] addr = ipEntry.AddressList;

string ipaddr = "";
for (int i = 0; i < addr.Length; i++)
{
ipaddr = addr[i].ToString ();
}


jmailobj.MailServerUserName="id";
jmailobj.MailServerPassWord="pwd";

jmailobj.Subject="ip address notice";
jmailobj.Body = ipaddr;
jmailobj.Charset="gb2312";
jmailobj.From="aa@163.com";
jmailobj.FromName="aa";


jmailobj.AddRecipient("aa@163.com","a","A");

jmailobj.AddRecipientBCC("shao9979@hotmail.com","ok");
jmailobj.AddRecipientBCC("gaoang2003@sohu.com.cn","ok");


jmailobj.Priority = 1;

jmailobj.AddAttachment(@"C:\aa.txt",true,"htm");
if(jmailobj.Send("smtp.163.com",false))
{
label1.Text = "发送成功";
Application.Exit();
}
else
{
label1.Text="发送失败";
}
Abac 2003-10-17
  • 打赏
  • 举报
回复
用Jmail吧,还是比较方便的。
stpangpang 2003-10-17
  • 打赏
  • 举报
回复
使用cdo组件发啊,现在的smtp服务器都要身份验证啊,都是垃圾邮件害的~
看看这个 http://expert.csdn.net/Expert/topic/2304/2304858.xml?temp=.8734705
hthy 2003-10-17
  • 打赏
  • 举报
回复
那微软要这个名字空间还有什么用啊
不能配合IIS使用
skyover 2003-10-17
  • 打赏
  • 举报
回复
smtp服务器拒绝relay,也就是转发。

你可以使用你自己的服务器。用用户名和密码登录就可以发送。当然不能使用Mail命名空间。使用CDO就可以做到。
mrwang2000 2003-10-16
  • 打赏
  • 举报
回复
我不是高手,我发表一下我的看法,见笑了:
我曾经读过一篇文章,上面说:
1。smtp(简单邮件传输协议)发送要求:本机必须安装了smtp组件
2。由于smtp邮件的随意性,容易造成垃圾邮件的泛滥,所以大部分的邮件服务器对smtp邮件的限制大大的增强了,也就是说服务器拒绝接收或限制接收。
3。当用循环来发送smtp邮件时,发送会受到限制或被拒绝
我实在是对smtp知之甚少,如果能对您有所启发,算是尽了微薄之力,若是没用,就当是废话好了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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