想做一段小程序。登录邮件账户后自动下载邮件的附件保存到本地硬盘。找了好多资料已经能收到邮件的正文。但始终没找到关于附件的操作。谁能帮助我!!!有的人说用Jmail,我下了。但还是不太喜欢用,应为那毕竟是别人的 东西。我是给公司做程序,我怕突然有一天Jmail不能用了。或是突然要收费。请问会出现那种问题吗?我还是想自己写,谁来帮我。  

解决方案 »

  1.   

    自己写收附件比较难,建议用jmail应该不会收费了:)
      

  2.   

    利用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!请检查邮件服务器的设置是否正确!");
          }
    }
     
      

  3.   

    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()