关于下载邮件附件问题请教!!! 想做一段小程序。登录邮件账户后自动下载邮件的附件保存到本地硬盘。找了好多资料已经能收到邮件的正文。但始终没找到关于附件的操作。谁能帮助我!!!有的人说用Jmail,我下了。但还是不太喜欢用,应为那毕竟是别人的 东西。我是给公司做程序,我怕突然有一天Jmail不能用了。或是突然要收费。请问会出现那种问题吗?我还是想自己写,谁来帮我。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己写收附件比较难,建议用jmail应该不会收费了:) 利用Jmail接收邮件 private void ReciveByJmail(){ /**////建立收邮件对象 jmail.POP3Class popMail = new POP3Class(); /**////建立邮件信息接口 jmail.Message mailMessage; /**////建立附件集接口 jmail.Attachments atts; /**////建立附件接口 jmail.Attachment att; try { popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim())); /**////如果收到邮件 if(0 < popMail.Count) { /**////根据取到的邮件数量依次取得每封邮件 for(int i=1;i <= popMail.Count;i++) { /**////取得一条邮件信息 mailMessage = popMail.Message[i]; /**////取得该邮件的附件集合 atts = mailMessage.Attachments; /**////设置邮件的编码方式 mailMessage.Charset = "GB2312"; /**////设置邮件的附件编码方式 mailMessage.Encoding = "Base64"; /**////是否将信头编码成iso-8859-1字符 mailMessage.ISOEncodeHeaders = false; /**////邮件的优先级 txtpriority.Text = mailMessage.Priority.ToString /**////邮件的发送人的信箱地址 txtSendMail.Text = mailMessage.From; /**////邮件的发送人 txtSender.Text = mailMessage.FromName; /**////邮件主题 txtSubject.Text = mailMessage.Subject; /**////邮件内容 txtBody.Text = mailMessage.Body; /**////邮件大小 txtSize.Text = mailMessage.Size.ToString(); for(int j=0;j<atts.Count;j++) { /**////取得附件 att = atts[j]; /**////附件名称 string attname = att.Name; /**////上传到服务器 att.SaveToFile("e:\\attFile\\"+attname); } } panMailInfo.Visible = true; att = null; atts = null; } else { Response.Write("没有新邮件!"); } popMail.DeleteMessages(); popMail.Disconnect(); popMail = null; } catch { Response.Write("Warning!请检查邮件服务器的设置是否正确!"); }} Jmail的主要参数列表 (1)Body(信件正文) : 字符串 如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。" (2)Charset(字符集,缺省为"US-ASCII") : 字符串 如:JMail.Charset = "US-ASCII" (3)ContentTransferEncoding : 字符串 指定内容传送时的编码方式,缺省是"Quoted-Printable" 如:JMail.ContentTransferEncoding = "base64" (4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。 如:JMail.ContentType = "text/html" (5)Encoding : 字符串 设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable" 如:JMail.Encoding = "base64" (6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串 如:使用Response.Write( JMail.Log )语句列出日志信息。 (7)Logging(是否使用日志) : 布尔型 如:JMail.Logging = true (8)Recipients : 字符串 只读属性,返回所有收件人 如:Response.Write( "" + JMail.Recipients + "" ); (9)ReplyTo(指定别的回信地址) : 字符串 如:JMail.ReplyTo = "[email protected]" (10)Sender( 发件人的邮件地址) : 字符串 如:JMail.Sender = "[email protected]" (11)SenderName(发件人的姓名) : 字符串 如:JMail.SenderName = "一克" (12)ServerAddress(邮件服务器的地址) : 字符串 你可以指定多个服务器,用分号点开。可以指定端口号。 如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。 如:JMail.ServerAddress = "mail.21cn.net.cn" (13)Subject(设定邮件的标题,可以取自From。):字符串 如:JMail.Subject = "客户反馈表单" (14)添加文件附件到邮件 如:JMail.AddAttachment( "c:\anyfile.zip" ) (15)AddCustomAttachment( FileName, Data ) 添加自定义附件. 如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" ); (16)AddHeader( Header, Value ) 添加用户定义的信件标头。 如:JMail.AddHeader( "Originating-IP","192.158.1.10" ); (17)AddRecipient(收件人):字符串 如:JMail.AddRecipient( "[email protected]" ); (18)AddRecipientBCC( Email ),密件收件人: 如:JMail.AddRecipientBCC( "[email protected]" ); (19)AddRecipientCC( Email ) ,抄送收件人: 如:JMail.AddRecipientCC( "" ) (20)AddURLAttachment( URL, 文档名) 下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。 如:JMail.AddURLAttachment( "http://www.aspxboy.com/jmail.zip", "jmail" ) (21)AppendBodyFromFile( 文件名) ,将文件作为信件正文: 如:JMail.AppendBodyFromFile( "c:\anyfile.txt" ) (22)AppendText( Text ) 追加信件的正文内容,比如增加问候语或者其它信息。 如:JMail.AppendText( "欢迎访问本站!" ) (23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接: 如:JMail.Close() (24)Execute() ,执行邮件的发送 如:JMail.Execute() 服务器控件提交问题 网站图片路径问题!! 新手求助:问个页面缓存更新的问题! 求助刷新问题 网络工程师 请问如何精确定位动态插入的插件? asp验证按钮如何先通过js验证 如果js验证不通过不执行按钮的服务器端代码 点击一下button按纽为什么向数据库中插入两行数据 急,Request.Form["inputid"].ToString()取不到值 请问一下如果学习mongodb等NOSQL数据库还需要学习LINQ或者ADO吗???? 请求帮助(急)!命名空间! 关于在页面前台进行处理的问题
private void ReciveByJmail()
{
/**////建立收邮件对象
jmail.POP3Class popMail = new POP3Class();
/**////建立邮件信息接口
jmail.Message mailMessage;
/**////建立附件集接口
jmail.Attachments atts;
/**////建立附件接口
jmail.Attachment att;
try
{
popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));
/**////如果收到邮件
if(0 < popMail.Count)
{
/**////根据取到的邮件数量依次取得每封邮件
for(int i=1;i <= popMail.Count;i++)
{
/**////取得一条邮件信息
mailMessage = popMail.Message[i];
/**////取得该邮件的附件集合
atts = mailMessage.Attachments;
/**////设置邮件的编码方式
mailMessage.Charset = "GB2312";
/**////设置邮件的附件编码方式
mailMessage.Encoding = "Base64";
/**////是否将信头编码成iso-8859-1字符
mailMessage.ISOEncodeHeaders = false;
/**////邮件的优先级
txtpriority.Text = mailMessage.Priority.ToString
/**////邮件的发送人的信箱地址
txtSendMail.Text = mailMessage.From;
/**////邮件的发送人
txtSender.Text = mailMessage.FromName;
/**////邮件主题
txtSubject.Text = mailMessage.Subject;
/**////邮件内容
txtBody.Text = mailMessage.Body;
/**////邮件大小
txtSize.Text = mailMessage.Size.ToString();
for(int j=0;j<atts.Count;j++)
{
/**////取得附件
att = atts[j];
/**////附件名称 string attname = att.Name;
/**////上传到服务器
att.SaveToFile("e:\\attFile\\"+attname);
}
}
panMailInfo.Visible = true;
att = null;
atts = null;
}
else
{
Response.Write("没有新邮件!");
} popMail.DeleteMessages();
popMail.Disconnect();
popMail = null;
}
catch
{
Response.Write("Warning!请检查邮件服务器的设置是否正确!");
}
}
(1)Body(信件正文) : 字符串
如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。"
(2)Charset(字符集,缺省为"US-ASCII") : 字符串
如:JMail.Charset = "US-ASCII"
(3)ContentTransferEncoding : 字符串
指定内容传送时的编码方式,缺省是"Quoted-Printable"
如:JMail.ContentTransferEncoding = "base64"
(4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串
如果你以HTML格式发送邮件, 改为"text/html"即可。
如:JMail.ContentType = "text/html"
(5)Encoding : 字符串
设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable"
如:JMail.Encoding = "base64"
(6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串
如:使用Response.Write( JMail.Log )语句列出日志信息。
(7)Logging(是否使用日志) : 布尔型
如:JMail.Logging = true
(8)Recipients : 字符串
只读属性,返回所有收件人
如:Response.Write( "" + JMail.Recipients + "" );
(9)ReplyTo(指定别的回信地址) : 字符串
如:JMail.ReplyTo = "[email protected]"
(10)Sender( 发件人的邮件地址) : 字符串
如:JMail.Sender = "[email protected]"
(11)SenderName(发件人的姓名) : 字符串
如:JMail.SenderName = "一克"
(12)ServerAddress(邮件服务器的地址) : 字符串
你可以指定多个服务器,用分号点开。可以指定端口号。
如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。
如:JMail.ServerAddress = "mail.21cn.net.cn"
(13)Subject(设定邮件的标题,可以取自From。):字符串
如:JMail.Subject = "客户反馈表单"
(14)添加文件附件到邮件
如:JMail.AddAttachment( "c:\anyfile.zip" )
(15)AddCustomAttachment( FileName, Data )
添加自定义附件.
如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );
(16)AddHeader( Header, Value )
添加用户定义的信件标头。
如:JMail.AddHeader( "Originating-IP","192.158.1.10" );
(17)AddRecipient(收件人):字符串
如:JMail.AddRecipient( "[email protected]" );
(18)AddRecipientBCC( Email ),密件收件人:
如:JMail.AddRecipientBCC( "[email protected]" );
(19)AddRecipientCC( Email ) ,抄送收件人:
如:JMail.AddRecipientCC( "" )
(20)AddURLAttachment( URL, 文档名)
下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。
如:JMail.AddURLAttachment( "http://www.aspxboy.com/jmail.zip", "jmail" )
(21)AppendBodyFromFile( 文件名) ,将文件作为信件正文:
如:JMail.AppendBodyFromFile( "c:\anyfile.txt" )
(22)AppendText( Text )
追加信件的正文内容,比如增加问候语或者其它信息。
如:JMail.AppendText( "欢迎访问本站!" )
(23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接:
如:JMail.Close()
(24)Execute() ,执行邮件的发送
如:JMail.Execute()