求高人指导邮件管理系统(C#)。。。 现在需要做一个邮件管理系统(C#)不知道怎么下手。。求指导! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; } } } 调用: 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); dataGridView单元格里的值受数据库中该值类型的限制吗 一个奇怪的提示??? 这几个函数怎么用的? 串口接收数据延时的问题?一个让我头痛的问题... 字符串格式化问题 怎么样在聊天室里加表情啊?请赐教,急,在线等!!!!!!!!!!!!!!!!! 问一个很菜的问题 送分一样!!!char(13)是回车 我想知道所有的键值是什么? c# 摄像头 实现哈哈镜效果 俄文显示 求下面json字符串用JavaScriptSerializer反序列化代码.. C#和VC操作同一个数据库,读到的数据不同步是怎么回事?
{
/// <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; }
} }
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);