常见问题FAQ

目录

常见问题FAQ    1

目录    2

修订历史纪录    3

1 CDO组件使用常见问题    4

2 JMail组件使用常见问题    5

3 其他常见问题    6

 

 

1 CDO组件使用常见问题

问题一:

为什么我引用CDO类时提示出错? 

using CDO;   找不到类型或命名空间名称"CDO"(是否缺少using指令或程序集引用?)

答案1:

先在你的项目中添加引用,然后再在代码里使用using CDO。  

 

问题二:

发送Email时,为什么出现"未能访问CDO.Message"的异常?

答案1:

 没有权限:
具体看http://blog.joycode.com/ghj/archive/2004/02/17/13197.aspx

 

答案2:

System.Web.Mail FAQ  这里提供了另外6种情况,我就不转贴了,参照http://www.systemwebmail.com/faq/4.2.3.aspx

 

答案3:

你装了杀毒软件,或者防火墙,
以McAfee VirusScan Enterprise 8.0 为例,在端口限制中,默认限制了除 amgrsrvc.exe,tomcat.exe,outlook.exe,msimn.exe,agent.exe,eudora.exe,nlnotes.exe,mozilla.exe,netscp.exe,
opera.exe,pine.exe,poco.exe,thebat.exe,thunderbird.exe,ntaskldr.exe,inetinfo.exe,nsmtp.exe,nrouter.exe,
tomcat5.exe,tomcat5w.exe,ebs.exe,FireSvc.exe,modulewrapper.exe,MSKSrvr.exe,MSKDetct.exe  这些程序外对 25 端口的请求。 而25端口是SMTP 用的。这时候就会报 未能访问"CDO.Message"对象 对象错误;只要把你的程序名放到例外名单中,即可绕过这个限制。如下图:
 

 

答案4:

你的Mail服务器性能不太好,经常超时,或其他错误,也会报:未能访问"CDO.Message"对象 的错误。

 

问题三:

测试服务器支持cdo.message,而且也显示发送成功!  
可是就是收不到邮件,为什么?

 

答案1:
  SMTP服务器有问题,更换一个试试,如(smtp.126,com)。

 

答案2:

检查你登陆smtp服务器的用户名和密码是否正确。

 

答案3:

换多个接收邮箱试试,很多是屏蔽群发的。

 

2 JMail组件使用常见问题

问题一:

JMAIL的最新版本是多少?

答案1:

最新的应该是w3 Jmail 4.5

 

问题二:

JMAIL 需要单独的发信服务器吗?

 

答案1:

JMAIL 需要设置单独的发信服务器 。如"smtp.126.com"

 

问题三:

为什么使用jmail发信时发信失败?

 

答案1:

最可能的原因是你指定的发信服务器需要发信认证,而你在程序中没有指定发信用户名和密码。

 

问题四:

Jmail 能发送附件吗?

 

答案1:

可以
message.Attachments.Add("附件地址");

3 其他常见问题

问题一:

什么是SMTP?

 

答案1:

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件

 

问题二:

如何添加多个附件?

 

答案1:

for(int i=0;i<附件数量;i++)

        mailmsg.Attachments.Add(new MailAttachment(this.attachments[i].ToString()));

 

问题二:

如何用代码创建文件夹?

 

答案1:

System.IO.Directory.CreateDirectory("文件夹路径");

 

问题三:

Server.MapPath()如何使用?

 

答案1:

Server.MapPath("/")应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\

答案2:
Server.MapPath("./")  表示所在页面的当前目录
注:等价于Server.MapPath("")  返回 Server.MapPath("")所在页面的物理文件路径

答案3:
Server.MapPath("../")表示上一级目录

答案4:
Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置 如:C:\Inetpub\wwwroot\Example\
注:等效于Server.MapPath("~")。

 

问题四:

如何上传文件?

 

答案1:

上传按钮代码如下:

private void upFileBtn_Click(object sender, System.EventArgs e)

{

if(this.UpFiles.PostedFile.ContentLength==0)

Label1.Text="上传文件不成功或者发生错误";

else

{

//获取上传文件名

string temp=this.UpFiles.PostedFile.FileName;

int intT=temp.LastIndexOf("\\");

temp=temp.Substring(intT+1);

//保存文件

this.UpFiles.PostedFile.SaveAs(Server.MapPath(".")+"\\Files\\"+temp);

Label1.Text="文件上传成功!上传文件名"+temp;

}

}