/// <summary>
        /// 个人邮箱发送方式
        /// </summary>
        /// <param name="serivceConfig">服务配置</param>
        /// <param name="email">电子邮件对象</param>
        public void Send(Dictionary<string, string> serivceConfig, EmailEntity email)
        {
            try
            {
                //邮件发送类
                MailMessage mail = new MailMessage();
                //是谁发送的邮件
                mail.From = new MailAddress(serivceConfig["PersonalSendEmail"], serivceConfig["PersonalSendEmailNickName"]);

                //发送给谁
                foreach (string receiveAddress in email.ReceiveAddress.Split(';'))
                {
                    mail.To.Add(receiveAddress);
                }
                //抄送给谁
                if (!string.IsNullOrWhiteSpace(email.CCAddress))
                {
                    foreach (string ccAddress in email.CCAddress.Split(';'))
                    {
                        mail.CC.Add(ccAddress);
                    }
                }

                //标题
                mail.Subject = email.EmailTitle;
                //内容编码
                mail.BodyEncoding = Encoding.Default;
                //发送优先级
                mail.Priority = email.EmailPriority;
                //邮件内容
                mail.Body = email.EmailBody;
                //是否HTML形式发送
                mail.IsBodyHtml = email.IsBodyHtml;

                //附件
                //if (fujian.Length > 0)
                //{
                //    mail.Attachments.Add(new Attachment(fujian));
                //}

                //邮件服务器和端口
                SmtpClient smtp = new SmtpClient(serivceConfig["PersonalEmailServerHost"], 25);
                smtp.UseDefaultCredentials = true;
                //指定发送方式
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                //指定登录名和密码
                smtp.Credentials = new System.Net.NetworkCredential(serivceConfig["PersonalSendEmail"], serivceConfig["PersonalSendEmailPassword"]);

                //超时时间
                smtp.Timeout = int.Parse(serivceConfig["PersonalSendTimeout"]);
                smtp.SendCompleted += new SendCompletedEventHandler(SendCompleted);
                object userState = email;
                smtp.SendAsync(mail, userState);
            }

            catch (Exception ex)
            {
                Logger.WriteException(ex.ToString());
            }
        }
Пример #2
0
 static void InsertMailTest()
 {
     EmailEntity entity = new EmailEntity()
     {
         ReceiveName = "ABC",
         ReceiveAddress = "*****@*****.**",
         EmailTitle = "Test",
         EmailBody = "Test content",
         IsBodyHtml = false,
         EmailPriority = System.Net.Mail.MailPriority.Normal,
         Status = EmailStatus.AuditPassed
     };
     EmailProcessor.Instance.InsertMail(entity);
 }
Пример #3
0
 /// <summary>
 /// 插入电子邮件
 /// 说明:邮件若无审核,则初始状态写入200,否则写入0
 /// </summary>
 /// <param name="email">电子邮件对象</param>
 /// <returns></returns>
 public bool InsertMail(EmailEntity email)
 {
     return GetDAInstance.InsertEmail(email);
 }
Пример #4
0
        /// <summary>
        /// 写入Email数据
        /// </summary>
        /// <param name="entity">Email对象</param>
        public bool InsertEmail(EmailEntity entity)
        {
            int retVal = 0;
            string sql = @"INSERT INTO [SohoEmailAndSMS].[dbo].[Emails]
                            ([UserSysNo]
                            ,[ReceiveName]
                            ,[ReceiveAddress]
                            ,[CCAddress]
                            ,[EmailTitle]
                            ,[EmailBody]
                            ,[IsBodyHtml]
                            ,[EmailPriority]
                            ,[Status]
                            ,[SendTime]
                            ,[InDate]
                            ,[LastUpdateTime]
                            ,[Note])
                        VALUES
                            (@UserSysNo
                            ,@ReceiveName
                            ,@ReceiveAddress
                            ,@CCAddress
                            ,@EmailTitle
                            ,@EmailBody
                            ,@IsBodyHtml
                            ,@EmailPriority
                            ,@Status
                            ,@SendTime
                            ,GETDATE()
                            ,NULL
                            ,@Note)";

            SqlServerDBHelper db = new SqlServerDBHelper();
            try
            {
                SqlParameter[] para = new SqlParameter[]
                {
                    new SqlParameter("@UserSysNo", entity.UserSysNo.HasValue ? entity.UserSysNo.Value : 0),
                    new SqlParameter("@ReceiveName", string.IsNullOrWhiteSpace(entity.ReceiveName) ? "" : entity.ReceiveName),
                    new SqlParameter("@ReceiveAddress", entity.ReceiveAddress),
                    new SqlParameter("@CCAddress", string.IsNullOrWhiteSpace(entity.CCAddress) ? "" : entity.CCAddress),
                    new SqlParameter("@EmailTitle", entity.EmailTitle),
                    new SqlParameter("@EmailBody", entity.EmailBody),
                    new SqlParameter("@IsBodyHtml", entity.IsBodyHtml),
                    new SqlParameter("@EmailPriority", entity.EmailPriority),
                    new SqlParameter("@Status", entity.Status),
                    new SqlParameter("@SendTime", string.IsNullOrWhiteSpace(entity.SendTime) ? "" : entity.SendTime),
                    new SqlParameter("@Note", string.IsNullOrWhiteSpace(entity.Note) ? "" : entity.Note)
                };
                retVal = db.ExecuteNonQuery(CommandType.Text, sql, para);
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex.ToString());
            }
            finally
            {
                db.Dispose();
            }

            return retVal > 0 ? true : false;
        }