C#实现邮件发送,可以添加附件,发件人、收件人信息从xml文件读取
来源:互联网 发布:旧手机回收软件 编辑:程序博客网 时间:2024/05/10 11:53
变量:
#region 变量 private XmlDocument xmlDoc = new XmlDocument(); private ArrayList toList = new ArrayList(); private byte key = 123;//加密字 #region 发件人信息 private string FJRYXQC = string.Empty; private string FJRYXMM = string.Empty; private string FJRYXMC = string.Empty; private string YXFWQDZ = string.Empty; private string FJRXM = string.Empty; private string YXFWQPORT = string.Empty; #endregion #region 收件人信息 string ACCYXQC = string.Empty; string ACCBZ = string.Empty; #endregion #endregion
发送邮件:
#region 发送邮件 /// <summary> /// /// </summary> /// <param name="theme">邮件主题</param> /// <param name="body">邮件内容</param> /// <param name="FJLJ">附件路径(附件以字符串的形式存在数组里面)</param> public void Send(string theme, string body, string[] FJLJ) { if (LoadFsrXmlData() && LoadJsrXmlData()) { MailMessage mail = new MailMessage(); mail.From = new MailAddress(FJRYXQC, FJRXM); //发送给谁 foreach (String to in toList) { mail.To.Add(to); } //标题 mail.Subject = theme; //内容编码 mail.BodyEncoding = Encoding.Default; //发送优先级 mail.Priority = MailPriority.High; //邮件内容 mail.Body = body; //是否HTML形式发送 mail.IsBodyHtml = true; //附件 try { Attachment data; ContentDisposition disposition; if (FJLJ != null && FJLJ.Length > 0) { foreach (string str in FJLJ) { data = new Attachment(str, MediaTypeNames.Application.Octet);//实例化附件 disposition = data.ContentDisposition; mail.Attachments.Add(data);//添加到附件中 } } } catch (Exception ex) { throw new Exception("添加附件错误!" + ex.Message); } //邮件服务器和端口号 int port = int.Parse(YXFWQPORT); SmtpClient smtp = new SmtpClient(YXFWQDZ, port); //587 smtp.UseDefaultCredentials = true; //指定发送方式 smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //指定登录名和密码 smtp.Credentials = new System.Net.NetworkCredential(FJRYXMC, FJRYXMM); //超时时间 smtp.Timeout = 300000; smtp.Send(mail); MessageBox.Show("发送成功!"); } else { if (!LoadFsrXmlData()) { MessageBox.Show("无发件人信息!"); } if (!LoadJsrXmlData()) { MessageBox.Show("无收件人信息!"); } } } #endregion
加载fsr.xml文件 读取发送人xml配置文件:
#region 加载fsr.xml文件 发送人xml配置文件 public bool LoadFsrXmlData() { string outMsg = string.Empty; try { string path = Application.StartupPath; string folder = System.IO.Path.Combine(path, "config"); string xmlFileName = System.IO.Path.Combine(folder, "fsr.xml"); bool folderExists = System.IO.Directory.Exists(folder); if (folderExists && File.Exists(xmlFileName))//当文件存在时 { xmlDoc.Load(xmlFileName); XmlNode root = xmlDoc.SelectSingleNode("root"); XmlNodeList nodeList = root.ChildNodes;//获得root节点的子节点 foreach (XmlElement xe in nodeList) { FJRYXQC = xe.GetElementsByTagName("FJRYXQC")[0].InnerText; FJRYXMM = encryptDecryptStr(xe.GetElementsByTagName("FJRYXMM")[0].InnerText); FJRYXMC = xe.GetElementsByTagName("FJRYXMC")[0].InnerText; YXFWQDZ = xe.GetElementsByTagName("YXFWQDZ")[0].InnerText; FJRXM = xe.GetElementsByTagName("FJRXM")[0].InnerText; YXFWQPORT = xe.GetElementsByTagName("YXFWQPORT")[0].InnerText; } return true; } return false; } catch (System.Exception ex) { MessageBox.Show("加载config.xml文件失败:" + ex.Message); return false; } } #endregion
加载jsr.xml文件 读取接收人xml配置文件:
#region 加载jsr.xml文件 接收人xml配置文件 public bool LoadJsrXmlData() { try { string path = Application.StartupPath; string folder = System.IO.Path.Combine(path, "config"); string xmlFileName = System.IO.Path.Combine(folder, "jsr.xml"); bool folderExists = System.IO.Directory.Exists(folder); if (folderExists && File.Exists(xmlFileName))//当文件存在时 { xmlDoc.Load(xmlFileName); XmlNode root = xmlDoc.SelectSingleNode("root"); XmlNodeList nodeList = root.ChildNodes;//获得root节点的子节点 foreach (XmlElement xe in nodeList) { toList.Add(xe.GetElementsByTagName("ACCYXQC")[0].InnerText); } return true; } return false; } catch (System.Exception ex) { MessageBox.Show("加载config.xml文件失败:" + ex.Message); return false; } } #endregion
密码加密:
# region 异或加密算法 public string encryptDecryptStr(string p) { byte[] bs = Encoding.Default.GetBytes(p); for (int i = 0; i < bs.Length; i++) { bs[i] = (byte)(bs[i] ^ key); } return Encoding.Default.GetString(bs); } #endregion
0 0
- C#实现邮件发送,可以添加附件,发件人、收件人信息从xml文件读取
- 发送邮件并可以添加附件
- Linux 发送邮件,抄送+附件,多收件人
- C#基于SMTP协议和SOCKET通信,实现邮件内容和附件的发送,并可隐藏收件人
- C#发送邮件(添加附件)!
- C#发送邮件(包含添加附件)
- java实现发送邮件与添加附件
- ASP.NET 实现发送邮件 + 多个收件人 + 多个附件
- javamail实现腾讯邮箱(企业邮箱,qq邮箱)发送邮件(多收件人多附件)
- python自动发送邮件自定义邮件发件人和收件人的显示内容
- javaMail发送邮件,标题/发件人/附件名称乱码
- c# 发送邮件、附件
- C# 调用outlook 发送邮件 或添加附件发送
- Java使用javax.mail发送邮件 解决收件人、发件人名字乱码问题
- C#邮件发送 批量发送邮件 发送邮件嵌入图片 添加附件
- Android 控件之--发送邮件时的,收件人列表,可以自动匹配,可以删除,可以添加的。
- C# 发送邮件(内容中可以插入图片,邮件可以添加附件,163邮箱、QQ邮箱等都可以使用)
- C# 发送邮件(内容中可以插入图片,邮件可以添加附件,163邮箱、QQ邮箱等都可以使用)
- Java读取并复制文件
- oracle程序包的创建和调用
- SVProgressHUD–比MBProgressHUD更好用的 iOS进度提示组件
- 在 Android 使用 C# 开发 iBeacons 应用
- java 读取网站的源代码
- C#实现邮件发送,可以添加附件,发件人、收件人信息从xml文件读取
- XMLHttpRequest cannot load – Origin is not allowed by Access-Control-Allow-Origin.
- Android - 优化WebView页面
- 简单工厂
- awk引用shell中变量的几种方法
- HTML 七牛上传图片
- java通过一个url读取网站的源代码 储存到本地文件中
- 【Leet Code】 242. Valid Anagram--easy
- Friendship (poj 1815 最小点割集+枚举)