现在需要做一个邮件管理系统(C#)不知道怎么下手。。求指导!

解决方案 »

  1.   

    public class GlbMail
    {
    /// <summary>
            /// 检测附件大小
            /// </summary>
            /// <param name="path"></param>
            /// <returns></returns>
            private bool Attachment_MaiInit(string path)
            {
                FileStream FileStream_my = null; //附件文件流
                try
                {
                    FileStream_my = new FileStream(path, FileMode.Open);
                    string name = FileStream_my.Name;
                    int size = (int)(FileStream_my.Length / 1024/1024);
                    FileStream_my.Close();
                    //控制文件大小不大于2M
                    if (size > 2)
                    {
                        MessageBox.Show("文件长度不能大于2M!你选择的文件大小为"+ size.ToString()+"M","警告",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                        return false;
                    }
                
                    return true;
                }
                catch (IOException E)
                {
                    MessageBox.Show(E.Message);
                    return false;
                }
            }
            /// <summary>
            /// 发送邮件
            /// </summary>
            /// <param name="i_EmailInfo"></param>
            /// <param name="errorMsg"></param>
            public void Send(EmailInfoModel i_EmailInfo,out string errorMsg)
            {
                //代码
                SmtpClient smtpClient = null;   //设置SMTP协议
                MailAddress mailAddr_from = null; //设置发信人地址  当然还需要密码
                MailAddress mailAddr_to = null;  //设置收信人地址  不需要密码
                MailMessage MailMessage_Mai = null;
                errorMsg = string.Empty;
                if (i_EmailInfo.SmtpServer == "")
                {
                    errorMsg = "SMTP服务器名不能为空";
                    return;
                }
                if (i_EmailInfo.SendEmail1 == "")
                {
                    errorMsg = "发件人邮箱地址不能为空";
                    return;
                }
                if (i_EmailInfo.SendEailPass == "")
                {
                    errorMsg = "发件人邮箱密码不能为空";
                    return;
                }
                if (i_EmailInfo.ReceiveEmail1 == "")
                {
                    errorMsg = "加收件人不能为空";
                    return;
                }
                try
                {
                    //初始化Smtp服务器信息
                    smtpClient = new SmtpClient();
                    smtpClient.Host = "smtp.qq.com";//邮件服务器地址
                    smtpClient.Port = i_EmailInfo.Port;
                    smtpClient.UseDefaultCredentials = true;
                    smtpClient.EnableSsl = false;
                    smtpClient.Credentials = new System.Net.NetworkCredential(i_EmailInfo.SendEmail1, i_EmailInfo.SendEailPass); //指定登录服务器的用户名和密码
                }
                catch (Exception e)
                {
                    errorMsg = "邮件发送失败,请确定SMTP服务名是否正确!" + "\n" + "技术信息:\n" + e.Message;
                    return;
                }
                MailMessage_Mai = new MailMessage();
                mailAddr_from = new MailAddress(i_EmailInfo.SendEmail1);
                mailAddr_to = new MailAddress(i_EmailInfo.ReceiveEmail1);
                //清空历史发送信息 以防发送时收件人收到的错误信息(收件人列表会不断重复)
                MailMessage_Mai.To.Clear();
                //添加收件人邮箱地址
                MailMessage_Mai.To.Add(mailAddr_to);
                //设置发件人邮箱
                MailMessage_Mai.From = mailAddr_from;
                //邮件主题
                MailMessage_Mai.Subject = i_EmailInfo.Title;
                //主题编码格式
                MailMessage_Mai.SubjectEncoding = System.Text.Encoding.UTF8;
                //邮件正文
                MailMessage_Mai.Body = i_EmailInfo.Message;
                //正文编码格式
                MailMessage_Mai.BodyEncoding = System.Text.Encoding.UTF8;
                //清空历史附件  以防附件重复发送
                MailMessage_Mai.Attachments.Clear();
                //添加附件
                //检测附件大小 发件必需小于10M 否则返回  不会执行以下代码
                if (i_EmailInfo.FilePaht != "")
                {
                    if (Attachment_MaiInit(i_EmailInfo.FilePaht.Trim()))
                    {
                        MailMessage_Mai.Attachments.Add(new Attachment(i_EmailInfo.FilePaht, MediaTypeNames.Application.Octet));
                    }
                }
                //注册邮件发送完毕后的处理事件
                //smtpClient.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback);
                smtpClient.SendCompleted +=new SendCompletedEventHandler(smtpClient_SendCompleted);
                //开始发送邮件
                smtpClient.SendAsync(MailMessage_Mai, "000000000");
            }
            /// <summary>
            /// 发信结束后委托
            /// </summary>
            public SendCompletedEventHandler smtpClient_SendCompleted { get; set; }
        }

        public class EmailInfoModel
        {
            private string m_FilePaht = string.Empty;
            /// <summary>
            /// 附件路径
            /// </summary>
            public string FilePaht
            {
                get { return m_FilePaht; }
                set { m_FilePaht = value; }
            }
            private string m_SmtpServer = "";
            /// <summary>
            /// SMTP服务器名
            /// </summary>
            public string SmtpServer
            {
                get { return m_SmtpServer; }
                set { m_SmtpServer = value; }
            }
            private int m_Port = 25;
            /// <summary>
            /// 端口
            /// </summary>
            public int Port
            {
                get { return m_Port; }
                set { m_Port = value; }
            }
            private string m_SendEmail = "";
            /// <summary>
            /// 发件人邮箱
            /// </summary>
            public string SendEmail
            {
                get { return m_SendEmail; }
                set { m_SendEmail = value; }
            }
            private string m_SendEailPass = "";
            /// <summary>
            /// 发件人邮箱密码
            /// </summary>
            public string SendEailPass
            {
                get { return m_SendEailPass; }
                set { m_SendEailPass = value; }
            }
            private string m_ReceiveEmail = "";
            /// <summary>
            /// 收件人邮箱
            /// </summary>
            public string ReceiveEmail
            {
                get { return m_ReceiveEmail; }
                set { m_ReceiveEmail = value; }
            }
            private string m_Title = "Test";
            /// <summary>
            /// 邮件主题
            /// </summary>
            public string Title
            {
                get { return m_Title; }
                set { m_Title = value; }
            }
            private string m_Message = "您的密码是111111";
            /// <summary>
            /// 邮件内容
            /// </summary>
            public string Message
            {
                get { return m_Message; }
                set { m_Message = value; }
            }
            private int m_Timeout;
            /// <summary>
            /// 超时
            /// </summary>
            public int Timeout
            {
                get { return m_Timeout; }
                set { m_Timeout = value; }
            } }
      

  2.   

    调用:            string msg = "";
                EmailInfoModel email = new EmailInfoModel();
                email.SmtpServer = "smtp.qq.com";
                email.Port = "25";
                email.SendEmail = "";
                email.SendEmailPass = "";
                email.ReceiveEmail = "";
                email.Title = "";
                email.Message = ""
                GlbMail emailSevice = new GlbMail();
                emailSevice.Send(email, out msg);