
在.NET Framework 推出以后,大家一直在为这个问题而伤脑筋。的确,在1.0的时候,我们是不能实现此方案的,大部分人选择了使用Socket底层自己重写。但是,在1.1的时候,其实Microsoft已经提供了验证功能了,只是一直没有公开。
恰好我在读.Text 0.95的源代码的时候找到了这段代码,感觉应该提供给大家
private void Page_Load(object sender, System.EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To = “[email protected]”;
mail.From = “[email protected]”;
mail.Subject = “this is a test email.”;
mail.Body = “Some text goes here”;
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”, “1”); //basic authentication
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendusername”, “my_username_here”); //set your username here
mail.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendpassword”, “super_secret”); //set your password here
SmtpMail.SmtpServer = “mail.mycompany.com”; //your real server goes here
SmtpMail.Send( mail );
}
参考资料:
http://vaultpub.sourcegear.com/VaultService/VaultWeb/Blame.aspx?repid=7&path=$/Dottext/Dottext.Framework/Email/SystemMail.cs&version=1&includedversions=20 (用户名及密码为guest)
Good and Thanks a lot!
嘿嘿,我写的公共函数中,就有通过验证mail服务器发Email的函数。。
To ghj1976:写过的人多了。
Good!
I like it!
呵呵,我以前的解决办法是满世界找不要验证的SMTP Server。
我今天给你发的邮件收到了吗?
To sam1111,对不起,mail.joycode.com在做试验中,所以发往joy @joycode.com的信箱全部有问题,请发往joy @china.com
谢谢开心
7456~~~
我花了好长时间,用TcpClient写出来了~~
支持验证,现在一看~~
呜呜,做了无用功阿~~
从学习的角度,自己做一个也挺好
我以前的一些应用程序使用的是jmail
好东西啊。感谢感谢
爽
这种方法比自己重写发送的速度慢多了。:)
其实CDO对象早在ASP那个年代就有了
真是太好了,本来还打算自己写个SmtpMail的类,看来现在不用了。在此表示感谢
我用过此方法了,但没有用了,各位大哥,帮帮小弟啊,我在做个密码取回的东东啊
用jmail能在需要验证的服务器上发送邮件吗?
而且CDO只能运行在2000或者更高上吧,如XP就不支持了。
对于jmail更是垃圾得一塌糊涂,宁愿自己用SOCKET写过
说的到是很好 可是 我现在的程序在本地上是好用的 但是 移值到托管的环境里不好用 也就是说他们那里用的是windows2003服务器 但是 没有安装smtp服务 我这个用asp.net下的类写的程序就不好用 我想找一个中继服务器主机 但是 都有验证 唉 我想手动用vb.net写底层构构怎么写~ 各位大哥请指教 要是还有别的好办法也可以 谢谢大哥哥们了
我怎么遇到了问题
无法访问CDO.Message
请问怎么解决
[email protected]
我发一个邮件好几次 老是退回来啊 系统消息是说你的邮件在队列中处理时间过长
"因为配置类型不正确,系统无法开始服务器进程。请检查用户名和密码。"
请问这是什么回事,在另外一台机器同样的代码却没有这个问题。
感激,感激,已经可以用了,就是不知道这样会有什么难以预料的问题?
还请大哥帮忙啊!
靠,我也出现了"System.Web.Mail.MailMessage并不包含对Fields的定义"这个报错,可我导入<% @Import Namespace = "System.Web.Util" %> 了,可还是……,郁闷……………………
各位大虾邦小弟一把!
已搞定了呵呵,谢了,楼上的朋友
550 not local host cnicp.net, not a gateway
各位大侠,帮看一下,这个错误是指什么?
df
我在visual studio里试,它提示mail.Fields.add语法错误啊?请问怎么会
这样?
上面的方法,好像不能正确发送邮件出去,发送的邮件都在死信目录内
535 Authentication failed 发件人地址错误,或不能为空
请问各位大虾,我的这个问题是什么原因呀?谢谢
“/”应用程序中的服务器错误。
——————————————————————————–
邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
源错误:
行 179:
行 180: SmtpMail.SmtpServer="smtp.728.cn"; //your real server goes here
行 181: SmtpMail.Send(mail);
行 182:
行 183: }
源文件: m:product_oasendmail.aspx.cs 行: 181
楼上的,我报的错为:
::System.Web.HttpException: 未能访问“CDO.Message”对象。 —> System.Reflection.TargetInvocationException: 调用的目标发生了异常。 —> System.Runtime.InteropServices.COMException (0x80040211): 邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available — 内部异常堆栈跟踪的结尾 — at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
,后来发现需要验证时,如果你的服务器有多个域,需要在用户名后将 @servername带全.
还是报错:
邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available
自己搞定了
“/”应用程序中的服务器错误。
——————————————————————————–
邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[COMException (0x80040211): 邮件无法发送到 SMTP 服务器。传输错误代码为 0x800ccc15。服务器响应为 not available
]
[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
我把代码传到买来的空间可以发送邮件,但在本地老是提示以上错误,各位达人有什么提示,谢谢!
不错。
邮件无法发送到 SMTP 服务器。传输错误代码为 0x80040217。服务器响应为 not available
我的也是呀.好晕呀
看了这篇,让我有了点思路
不错~~
不错,不过vs2005里已经不用这样了~~
不错
不错,不过vs2005里已经不用这样了~~
Mail.MailMessage
Mail.MailMessage
Thanks