Beispiel #1
0
        public ActionResult SetDefault(int aid)
        {
            DataAccess.Tnsmtp_Account tnsmtp_Account1 = new DataAccess.Tnsmtp_Account();

            if (tnsmtp_Account1.SelecByUserDefault(SysUser.UserId))
            {
                tnsmtp_Account1.Isdefault = 0;
                if (!tnsmtp_Account1.Update())
                {
                    return(FailResult("设置失败!"));
                }
            }

            DataAccess.Tnsmtp_Account tnsmtp_Account2 = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account2.SelectByPK(aid))
            {
                return(FailResult("设置失败!"));
            }

            tnsmtp_Account2.Isdefault = 1;

            if (!tnsmtp_Account2.Update())
            {
                return(FailResult("设置失败!"));
            }

            return(SuccessResult("设置成功!"));
        }
Beispiel #2
0
        public ActionResult AddAccount(AccountModel model)
        {
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            tnsmtp_Account.Account  = model.Account;
            tnsmtp_Account.Password = model.Password;

            DataAccess.Tnsmtp_AccountCollection tnsmtp_AccountCollection = new DataAccess.Tnsmtp_AccountCollection();
            tnsmtp_AccountCollection.ListByUserId(SysUser.UserId);

            if (tnsmtp_AccountCollection.DataTable.Rows.Count > 0)
            {
                tnsmtp_Account.Isdefault = 0;
            }
            else
            {
                tnsmtp_Account.Isdefault = 1;
            }

            tnsmtp_Account.MailType = model.Mail_Type;
            tnsmtp_Account.Status   = 0;
            tnsmtp_Account.Userid   = SysUser.UserId;

            if (!tnsmtp_Account.Insert())
            {
                return(FailResult("添加失败!"));
            }

            return(SuccessResult("添加成功!"));
        }
Beispiel #3
0
        public ActionResult DeleteAccount(int aid)
        {
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(aid))
            {
                return(FailResult("删除失败!"));
            }

            if (!tnsmtp_Account.Delete())
            {
                return(FailResult("删除失败!"));
            }


            return(SuccessResult("删除成功!"));
        }
Beispiel #4
0
        public ActionResult GetList(int?accountId)
        {
            if (!accountId.HasValue)
            {
                DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
                tnsmtp_Account.SelecByUserDefault(SysUser.UserId);
                accountId = tnsmtp_Account.Aid;
            }

            ReceiveFacade receive = new ReceiveFacade();

            if (!receive.GetAccountEmail(accountId.Value))
            {
                return(FailResult("获取失败!"));
            }
            return(SuccessResult());
        }
Beispiel #5
0
        public ActionResult UpdateAccount(AccountModel model)
        {
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(model.Aid))
            {
                return(FailResult("修改失败!"));
            }
            tnsmtp_Account.Account  = model.Account;
            tnsmtp_Account.Password = model.Password;
            tnsmtp_Account.MailType = model.Mail_Type;

            if (!tnsmtp_Account.Update())
            {
                return(FailResult("修改失败!"));
            }

            return(SuccessResult("修改失败!"));
        }
Beispiel #6
0
        public ActionResult List(int?accountid, string keywords)
        {
            if (!accountid.HasValue)
            {
                DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
                tnsmtp_Account.SelecByUserDefault(SysUser.UserId);
                accountid = tnsmtp_Account.Aid;
            }


            DataAccess.Tnsmtp_RecmailCollection recmailCollection = new DataAccess.Tnsmtp_RecmailCollection();
            recmailCollection.ChangePage = this.ChangePage();

            if (!recmailCollection.ListByDefault(accountid.Value, SysUser.UserId, keywords))
            {
                return(FailResult("查询失败!"));
            }
            var list = MapProvider.Map <Tnsmtp_ReceivefilelMap>(recmailCollection.DataTable);

            return(SuccessResultList(list, recmailCollection.ChangePage));
        }
Beispiel #7
0
        /// <summary>
        /// 向用户发送普通邮件====即时发送
        /// </summary>
        public bool SingleSend(Tnsmtp_EmailMap model)
        {
            BeginTransaction();

            #region 前期准备工作

            #region 获取发件账户信息
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(model.AccountId))
            {
                Rollback();
                Alert("获取发件账户失败");
                return(false);
            }
            #endregion

            #region 获取企业邮箱信息
            DataAccess.Tnsmtp_Mailtype tnsmtp_Mailtype = new DataAccess.Tnsmtp_Mailtype();
            if (!tnsmtp_Mailtype.SelectByPK(tnsmtp_Account.MailType))
            {
                Rollback();
                Alert("获取企业邮箱失败");
                return(false);
            }
            #endregion

            #region 判断收件人是否存在常用联系人,不存在则添加
            if (!AddContactTable(model))
            {
                Rollback();
                return(false);
            }

            #endregion

            #region 如果存在模板标签则替换模板标签
            string      content = string.Empty;
            ReplaceMark replace = new ReplaceMark();
            if (!replace.Replace(model, model.Userid, out content))
            {
                Rollback();
                Alert("替换模板标签失败!");
                return(false);
            }

            #endregion

            #region 添加数据库 邮件表

            model.Senddate = DateTime.Now;
            if (!SingleAddEmailTable(model))
            {
                Rollback();
                Alert("添加邮件失败");
                return(false);
            }

            #endregion

            #region 如果有附件,则添加附件到数据库
            Dictionary <string, string> filelist  = new Dictionary <string, string>();
            AttchmentFacade             attchment = new AttchmentFacade();
            if (!attchment.AddAtthachmentTable(model, tnsmtp_Account, out filelist))
            {
                Rollback();
                Alert("添加附件失败!");
                return(false);
            }

            #endregion

            #region 判断是否有抄送或者密送


            List <string> Bcc = new List <string>();
            List <string> Wcc = new List <string>();


            if (!Entites.Tool.SplitContact.GetCCArray(model.Bcc, out Bcc))
            {
                Alert("密送联系人地址有误");
                Rollback();
                return(false);
            }


            if (!Entites.Tool.SplitContact.GetCCArray(model.Wcc, out Wcc))
            {
                Alert("抄送联系人地址有误");
                Rollback();
                return(false);
            }


            #endregion


            #endregion

            try
            {
                #region 调用SMTP 发送邮件
                SmtpMail smtp = new SmtpMail();
                smtp.AddRecipient(model.Inmail);

                smtp.MailDomain     = tnsmtp_Mailtype.SmtpUrl;
                smtp.Html           = true;
                smtp.From           = model.Tomail;
                smtp.FromName       = model.Tomail;
                smtp.RecipientName  = model.Inmail;
                smtp.MailDomainPort = tnsmtp_Mailtype.SmtpSsl;
                smtp.Subject        = model.Subject;
                smtp.Body           = model.Content;
                smtp.AttachmentFile = filelist;

                smtp.MailServerUserName = tnsmtp_Account.Account;
                smtp.MailServerPassWord = tnsmtp_Account.Password;

                smtp.RecipientBCC1 = Bcc;
                smtp.RecipientWCC1 = Wcc;



                if (!smtp.Send())
                {
                    Rollback();
                    Alert(smtp.PromptInfo.Message);
                    return(false);
                }

                #endregion
            }
            catch (Exception e)
            {
                Log.Info("发送异常!" + e);
                Rollback();
                Alert(e.Message);
                return(false);
            }

            Commit();
            return(true);
        }
Beispiel #8
0
        /// <summary>
        /// 定时发送===等待服务去跑
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool SingleTimerSend(Tnsmtp_EmailMap model)
        {
            BeginTransaction();


            #region 获取发件账户信息
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(model.AccountId))
            {
                Rollback();
                Alert("获取发件账户失败");
                return(false);
            }
            #endregion

            #region 获取企业邮箱信息
            DataAccess.Tnsmtp_Mailtype tnsmtp_Mailtype = new DataAccess.Tnsmtp_Mailtype();
            if (!tnsmtp_Mailtype.SelectByPK(tnsmtp_Account.MailType))
            {
                Rollback();
                Alert("获取企业邮箱失败");
                return(false);
            }
            #endregion

            #region 判断收件人是否存在常用联系人,不存在则添加
            if (!AddContactTable(model))
            {
                Rollback();
                return(false);
            }

            #endregion

            #region 如果存在模板标签则替换模板标签
            string      content = string.Empty;
            ReplaceMark replace = new ReplaceMark();
            if (!replace.Replace(model, model.Userid, out content))
            {
                Rollback();
                Alert("替换模板标签失败!");
                return(false);
            }

            #endregion

            #region 添加数据库 邮件表

            model.FlagStatus = (int)Entites.EmailFlagStatus.定时邮件;;

            if (!SingleAddEmailTable(model))
            {
                Rollback();
                Alert("添加邮件失败");
                return(false);
            }

            #endregion

            #region 如果有附件,则添加附件到数据库
            Dictionary <string, string> filelist  = new Dictionary <string, string>();
            AttchmentFacade             attchment = new AttchmentFacade();
            if (!attchment.AddAtthachmentTable(model, tnsmtp_Account, out filelist))
            {
                Rollback();
                Alert("添加附件失败!");
                return(false);
            }

            #endregion


            Commit();
            return(true);
        }
Beispiel #9
0
        /// <summary>
        /// 刷新获取邮件更新
        /// </summary>
        /// <param name="accountId"></param>
        /// <returns></returns>
        public bool GetAccountEmail(int accountId)
        {
            DateTime?beforeDate = null;

            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();

            if (!tnsmtp_Account.SelectByPK(accountId))
            {
                Log.Info("获取邮件账户信息错误");
                return(false);
            }

            Tnsmtp_Mailtype tnsmtp_Mailtype = new Tnsmtp_Mailtype();

            if (!tnsmtp_Mailtype.SelectByPK(tnsmtp_Account.MailType))
            {
                Log.Info("获取邮件配置失败");
                Alert("获取邮件配置失败!");
                return(false);
            }

            Tnsmtp_Recmail tnsmtp_Recmail = new Tnsmtp_Recmail();

            if (tnsmtp_Recmail.SelectMaxRecEmail(accountId, tnsmtp_Account.Userid))
            {
                beforeDate = tnsmtp_Recmail.Rectimer;
            }
            List <MimeKit.MimeMessage> messages = new List <MimeKit.MimeMessage>();

            ImapEmail imap = new ImapEmail();

            if (!imap.KitEmailHelper(tnsmtp_Mailtype.PopUrl, tnsmtp_Mailtype.PopPort, tnsmtp_Account.Account, tnsmtp_Account.Password, beforeDate, out messages))
            {
                Log.Info("获取邮件失败");
                Alert("获取邮件失败!");
                return(false);
            }

            if (messages.Count <= 0)
            {
                Log.Info("没有信息的邮件");
                Alert("没有信息的邮件!");
                return(true);
            }


            BeginTransaction();

            foreach (MimeMessage item in messages)
            {
                if (!InserRecTable(item, tnsmtp_Account))
                {
                    Log.Info("添加收件箱失败");
                    Alert("获取邮件失败!");
                    Rollback();
                    return(false);
                }
            }
            Commit();
            return(true);
        }
Beispiel #10
0
        /// <summary>
        /// 发送邮件By DataRow 由windows服务调取发送
        /// </summary>
        /// <param name="dr"></param>
        /// <returns></returns>
        public bool SendEmail(DataRow dr)
        {
            string inmail    = dr[Tnsmtp_Email._INMAIL].ToString();
            string tomail    = dr[Tnsmtp_Email._TOMAIL].ToString();
            string subject   = dr[Tnsmtp_Email._SUBJECT].ToString();
            string content   = dr[Tnsmtp_Email._CONTENT].ToString();
            int    accountid = int.Parse(dr[Tnsmtp_Email._ACCOUNT_ID].ToString());
            int    mailid    = int.Parse(dr[Tnsmtp_Email._MAIL_ID].ToString());
            int    userid    = int.Parse(dr[Tnsmtp_Email._USERID].ToString());
            string bccstr    = dr[Tnsmtp_Email._BCC].ToString();
            string wccstr    = dr[Tnsmtp_Email._WCC].ToString();

            #region 获取发件账户信息
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(accountid))
            {
                Alert("获取发件账户失败");
                return(false);
            }
            #endregion

            #region 获取企业邮箱信息
            DataAccess.Tnsmtp_Mailtype tnsmtp_Mailtype = new DataAccess.Tnsmtp_Mailtype();
            if (!tnsmtp_Mailtype.SelectByPK(tnsmtp_Account.MailType))
            {
                Alert("获取企业邮箱失败");
                return(false);
            }
            #endregion

            #region 获取附件信息
            Dictionary <string, string> filelist  = new Dictionary <string, string>();
            AttchmentFacade             attchment = new AttchmentFacade();
            if (!attchment.GetAttchment(mailid, userid, out filelist))
            {
                Alert("获取附件失败");
                return(false);
            }
            #endregion



            #region 增加回执


            content = Receipt.SetReceipt(content, mailid);

            #endregion

            #region 判断是否有抄送或者密送


            List <string> Bcc = new List <string>();
            List <string> Wcc = new List <string>();


            if (!Entites.Tool.SplitContact.GetCCArray(bccstr, out Bcc))
            {
                Log.Info("密送联系人地址有误!");
                Alert("密送联系人地址有误");

                return(false);
            }


            if (!Entites.Tool.SplitContact.GetCCArray(wccstr, out Wcc))
            {
                Log.Info("抄送联系人地址有误!");
                Alert("抄送联系人地址有误");
                return(false);
            }


            #endregion

            try
            {
                SmtpMail smtp = new SmtpMail();
                smtp.AddRecipient(inmail);

                smtp.MailDomain     = tnsmtp_Mailtype.SmtpUrl;
                smtp.Html           = true;
                smtp.From           = tomail;
                smtp.FromName       = tomail;
                smtp.RecipientName  = inmail;
                smtp.MailDomainPort = tnsmtp_Mailtype.SmtpSsl;
                smtp.Subject        = subject;
                smtp.Body           = content;
                smtp.AttachmentFile = filelist;

                smtp.MailServerUserName = tnsmtp_Account.Account;
                smtp.MailServerPassWord = tnsmtp_Account.Password;

                smtp.RecipientBCC1 = Bcc;
                smtp.RecipientWCC1 = Wcc;



                if (!smtp.Send())
                {
                    Alert(smtp.PromptInfo.Message);
                    return(false);
                }
                return(true);
            }
            catch (Exception e)
            {
                Alert(e.Message);
                return(false);
            }
        }
Beispiel #11
0
        /// <summary>
        /// 群发邮件====让服务即时去跑
        /// </summary>
        /// <param name="model"></param>
        /// <param name="Gid"></param>
        /// <returns></returns>
        public bool GroupSend(Tnsmtp_EmailMap model, int Gid)
        {
            BeginTransaction();

            #region 获取发件账户信息
            DataAccess.Tnsmtp_Account tnsmtp_Account = new DataAccess.Tnsmtp_Account();
            if (!tnsmtp_Account.SelectByPK(model.AccountId))
            {
                Rollback();
                Alert("获取发件账户失败");
                return(false);
            }
            #endregion

            #region 获取企业邮箱信息
            DataAccess.Tnsmtp_Mailtype tnsmtp_Mailtype = new DataAccess.Tnsmtp_Mailtype();
            if (!tnsmtp_Mailtype.SelectByPK(tnsmtp_Account.MailType))
            {
                Rollback();
                Alert("获取企业邮箱失败");
                return(false);
            }
            #endregion

            #region 如果存在模板标签则替换模板标签
            string      content = string.Empty;
            ReplaceMark replace = new ReplaceMark();
            if (!replace.Replace(model, model.Userid, out content))
            {
                Rollback();
                Alert("替换模板标签失败!");
                return(false);
            }

            #endregion


            DataAccess.Tnsmtp_ContactCollection tnsmtp_ContactCollection = new Tnsmtp_ContactCollection();

            if (!tnsmtp_ContactCollection.ListByUserid(model.Userid, string.Empty, Gid))
            {
                Rollback();
                Alert("查找分组联系人失败");
                return(false);
            }

            foreach (DataRow dr in tnsmtp_ContactCollection.DataTable.Rows)
            {
                model.FlagStatus = (int)Entites.EmailFlagStatus.群发;
                model.Inmail     = dr[Tnsmtp_Contact._EMAIL].ToString();

                if (!GroupAddEmailTable(model))
                {
                    Rollback();
                    Alert("添加邮件失败");
                    return(false);
                }


                Dictionary <string, string> filelist  = new Dictionary <string, string>();
                AttchmentFacade             attchment = new AttchmentFacade();
                if (!attchment.AddAtthachmentTable(model, tnsmtp_Account, out filelist))
                {
                    Rollback();
                    Alert("添加附件失败!");
                    return(false);
                }
            }



            Commit();
            return(true);
        }