记录--关于Asp.Net中smtpmail的问题(大学时的问题了)
关于Asp.Net中smtpmail的问题
现在smtp.21cn.com发送也需要认证了,也不能用来在程序中发邮件了
需要认证的smtp服务器的mailobj
mailobj.Fields["http://schemas.microsoft.com/cdo/configuration/sendusing"]=2;
mailobj.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"]="youremail@sina.com";
mailobj.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"]="password";
mailobj.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"]=1;
作者:06001327 发帖:2003-12-15 18:18:43
教学园地上使用smtpmail发送,没有错误提示,为何邮箱中总是收不到?
还有attachments是指在服务器上的文件作附件吧?
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-15 20:09:48
是[jxyd]服务器的smtp服务没有启动运行,试了几次,都没恢复,还在找原因,最好不要重装系统而解决。
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-16 11:13:32
在smtp服务正常的笔记本电脑上,本机Administrator登录,发送带附件的邮件正常,也能收到。
但其他机器联到该笔记本上,发送不带附件的邮件才正常。
还没有找到原因,贴出来,请大家一起会诊,也找找作业不好做的原因。
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-16 12:56:20
mail.Attachments.Add(new MailAttachment("c:\readme.txt"))
好像发送的附件必须是smtp服务器上的文件。
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-16 21:06:20
我在自己机子上调试,xp+iis,出现下面的问题
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
“SendUsing”配置值无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: “SendUsing”配置值无效。
源错误:
行 107: end if
行 108: mail.Body=mailBody.Value
行 109: SmtpMail.Send(mail)
行 110: Label1.Text = "信件已经送出!"
行 111: End Sub
源文件: c:\inetpub\wwwroot\asp.net\z_postmail.aspx 行: 109
堆栈跟踪:
[COMException (0x80040220): “SendUsing”配置值无效。
]
[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) +111
System.Web.Mail.CdoSysHelper.Send(MailMessage message) +1846
System.Web.Mail.SmtpMail.Send(MailMessage message) +150
ASP.z_postmail_aspx.Button1_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\asp.net\z_postmail.aspx:109
System.Web.UI.HtmlControls.HtmlInputButton.OnServerClick(EventArgs e) +108
System.Web.UI.HtmlControls.HtmlInputButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
System.Web.UI.Page.ProcessRequestMain() +1277
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-16 21:24:18
是不是内网不能用smtp
--------------------------------------------------------------------------------
作者:cavalier 回复:2003-12-17 9:33:22
哈哈,和我上学期做软件工程作业时候的情况一样阿
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-17 15:42:52
你是怎么解决的阿?
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-17 17:59:12
查到了
109行上加上这一行就可以了
SmtpMail.SmtpServer="localhost"
行 109: SmtpMail.Send(mail)
但是发送的邮件全在C:\Inetpub\mailroot\Queue下,而没有真正发到信箱
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-18 17:44:07
终于在我自己的机子上调试成功,对局域网用户:IIS-->默认的smtp虚拟服务器--〉属性--〉常规: IP一定要设成你机子的IP,而不能用全部未分配!
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-18 17:51:39
我又回头试了一下,改成全部未分配也是可以的,不要启用LDA路由就可以了
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-18 18:08:23
可以再试试别人在另外的机器,访问你的服务器的mail3.aspx,用你的机器发送邮件
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-18 21:29:54
在别人的机器上只能发送不带附件的邮件,如果我没猜错的话,发送的附件必须是服务器上的文件,如果客户机的文件当作附件发送应该先上传到服务器才行,加上一段上传代码应该就没问题了。
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-18 21:53:03
刚刚又试了一下加了上传代码就可以在别人的机子上发带附件的邮件了。
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-20 0:35:47
将你的aspx程序上传到[烘培机],可以作为范例留存
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-20 10:40:35
上传了,z_postmail.aspx
--------------------------------------------------------------------------------
作者:06001327 回复:2003-12-21 15:01:58
不过jxyd的smtp还是有问题,还是发了出去收不到的。虽然无错误提示。
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-24 17:49:14
jxyd的smtp还没有调好,等有机会去服务器机房再调。
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-24 18:28:00
327目录的z_postmail.aspx
改用邮件服务器SmtpMail.SmtpServer="smtp.21cn.com"后,可以带附件了。
很好的,对大家很有帮助。
已在[jxyd]的[实例]栏目,[.net实例通]-[作业范例效果及源代码]公布。
--------------------------------------------------------------------------------
作者:06001519 回复:2003-12-28 9:28:35
现在有安全检查了,那个程序有什么用呢?又传不到网页上去!saveas()不给用,还是没用!!!
--------------------------------------------------------------------------------
作者:cuihy 回复:2003-12-28 10:43:52
范例的程序可供自己机器安装
saveas等一些影响服务器安全的代码禁止上传,还是为了保证大家使用的安全,自己做实验有关上传的操作,就在自己的机器上试
“有了一枝枪,好人用来保家卫国,可坏人却去抢银行”,这个同样的道理大家应该能够理解。
--------------------------------------------------------------------------------
posted on 2005-11-24 11:34 Shooper .NET 阅读(852) 评论(0) 收藏 举报
浙公网安备 33010602011771号