.net jMail收邮件(含写入数据库及收取附件)

接上章发送邮件

核心代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using jMailDemo2;
using jmail;
using System.IO;

namespace JmailDemo
{
    public class MailAPI
    {
        #region 收邮件
        public void ReceiveMail(string Username, string Password, string ServerS)
        {
            //建立接收邮件对象
            jmail.POP3 popMail = new POP3Class();

            try
            {
                //配置接收邮件
                popMail.Connect(Username, Password, ServerS, Convert.ToInt32(110));
                //如果收到邮件
                if (popMail.Count > 0)
                {
                    //根据取到的邮件数量依次取得每封邮件
                    for (int i = 1; i < popMail.Messages.Count; i++)
                    {
                        var curtMail = popMail.DownloadSingleMessage(i);
                        MailDBEntities db = new MailDBEntities();
                        jReceiveMail jReceiveMail = new jReceiveMail();

                        jReceiveMail.jbody = curtMail.HTMLBody;
                        jReceiveMail.jreceiveDate = Convert.ToDateTime(curtMail.Date);
                        jReceiveMail.jsendMail = curtMail.From;
                        string temp = "";
                        if (popMail.DownloadSingleMessage(i).Attachments.Count > 0)
                        {
                            for (int j = 0; j < popMail.DownloadSingleMessage(i).Attachments.Count; j++)
                            {
                                temp += curtMail.Attachments[j].Name + ";";
                                string root = "E:\\receiveMail\\" + DateTime.Now.ToString() + curtMail.Attachments[j].Name;
                                popMail.DownloadSingleMessage(i).Attachments[j].SaveToFile(root);
                            }
                        }
                        jReceiveMail.jreceiveMail1 = Username;
                        jReceiveMail.jattachMentRout = temp;
                        jReceiveMail.jsubject = curtMail.Subject;
                        jReceiveMail.jActive = "Y";
                        db.AddTojReceiveMail(jReceiveMail);
                        db.SaveChanges();
                    }
                    //return mailStator.正常接收;
                }
                else
                {
                    //return mailStator.无邮件;
                }
                //popMail.DeleteMessages();
                popMail.Disconnect();
                popMail = null;
            }
            catch (Exception)
            {
                //return mailStator.接收异常;
                throw;
            }
        }
        #endregion
    }
}

调用:

protected void Button1_Click(object sender, EventArgs e)
        {
            MailAPI mail = new MailAPI();
            mail.ReceiveMail("aaa@qq.com", "qtt", "pop.qq.com");
        }

建数据库表:

create table userMessage (
id int identity(1,1) primary key, 
userId varchar(30), 
userMail nvarchar(100), 
userName nvarchar(50), 
userPermission nvarchar(10) null,
createDate datetime default(getdate()),
isActive nvarchar(2) default('Y')
)

create table smtpServiceList(
id int identity(1,1) primary key,
jsmtpService nvarchar(16),
jcreateDate datetime default(getdate()),
jcreateUser nvarchar(30),
jcreateUserId varchar(20),
jupdateUserId varchar(20) null,
jupdateUser varchar(30) null,
isActive nvarchar(2) default('Y')
)

create table jSendMail(
id int identity(1,1) primary key, 
jsendMail nvarchar(50),
jreceiveMail nvarchar(300), 
jsubject nvarchar(100),
jbody text null, 
jattachMentRout nvarchar(500) null, 
jcc nvarchar(100) null, 
jbc nvarchar(100) null, 
jzt nvarchar(100) null, 
jsendService nvarchar(16), 
joperUser nvarchar(30) null,
joperUserId nvarchar(20) null,
joperDate datetime default(getdate()),
jcurrentGroup nvarchar(50) null, 
jDescription nvarchar(200) null, 
jtrming datetime default(getdate()),
jActive nvarchar(2) default('Y')
)

create table jReceiveMail(
id int identity(1,1) primary key, 
jattachMentRout nvarchar(500) null, 
jsendMail nvarchar(100),
jsubject nvarchar(100), 
jbody text null, 
jsize int null, 
jreceiveMail nvarchar(60), 
jtype nvarchar(40) null, 
jreceiveDate datetime null, 
jActive nvarchar(2) default('Y')
)



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值