/// <param name="files">图片地址</param>
/// <param name="emailFromName">发送人姓名</param>
/// <param name="zsrList">收件人集合</param>
/// <param name="csrList">抄送人集合</param>
/// <param name="arrFilePath">附件路径</param>
/// <param name="mailSubject">主题</param>
/// <param name="mailBody">正文内容</param>
/// <returns></returns>
public static bool SendEmail(string emailFrom, string[] files, string emailFromName, IList<CSR> zsrList, IList<CSR> csrList, ArrayList arrFilePath, string mailSubject, string mailBody)
{
MailMessage Email = new MailMessage();
try
{
MailAddress EmailFrom = new MailAddress(emailFrom, emailFromName); //创建发件人邮箱地址对象
Email.From = EmailFrom; //指定发件人
Email.CC.Add(EmailFrom); //将发件人作为抄送人发一份
for (int i = 0; i < zsrList.Count; i++) //循环添加主送人邮箱地址对象
{
MailAddress zsrAddr = new MailAddress(zsrList[i].EMAIL, zsrList[i].NAME);
Email.To.Add(zsrAddr);
}
for (int i = 0; i < csrList.Count; i++) //循环添加抄送人邮箱地址对象
{
MailAddress csrAddr = new MailAddress(csrList[i].EMAIL, csrList[i].NAME);
Email.CC.Add(csrAddr);
}
/// <param name="emailFromName">发送人姓名</param>
/// <param name="zsrList">收件人集合</param>
/// <param name="csrList">抄送人集合</param>
/// <param name="arrFilePath">附件路径</param>
/// <param name="mailSubject">主题</param>
/// <param name="mailBody">正文内容</param>
/// <returns></returns>
public static bool SendEmail(string emailFrom, string[] files, string emailFromName, IList<CSR> zsrList, IList<CSR> csrList, ArrayList arrFilePath, string mailSubject, string mailBody)
{
MailMessage Email = new MailMessage();
try
{
MailAddress EmailFrom = new MailAddress(emailFrom, emailFromName); //创建发件人邮箱地址对象
Email.From = EmailFrom; //指定发件人
Email.CC.Add(EmailFrom); //将发件人作为抄送人发一份
for (int i = 0; i < zsrList.Count; i++) //循环添加主送人邮箱地址对象
{
MailAddress zsrAddr = new MailAddress(zsrList[i].EMAIL, zsrList[i].NAME);
Email.To.Add(zsrAddr);
}
for (int i = 0; i < csrList.Count; i++) //循环添加抄送人邮箱地址对象
{
MailAddress csrAddr = new MailAddress(csrList[i].EMAIL, csrList[i].NAME);
Email.CC.Add(csrAddr);
}
}
catch
{
return false;
}
catch
{
return false;
}
Email.IsBodyHtml = true;
Email.BodyEncoding = System.Text.Encoding.UTF8;
Email.Body += mailBody;
for (int i = 0; i < files.Length; i++)
{
System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(files[i]);
Email.Attachments.Add(attachment);
Email.Body += "<img src=\"cid:" + attachment.ContentId + "\"/>";
Email.BodyEncoding = System.Text.Encoding.UTF8;
Email.Body += mailBody;
for (int i = 0; i < files.Length; i++)
{
System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment(files[i]);
Email.Attachments.Add(attachment);
Email.Body += "<img src=\"cid:" + attachment.ContentId + "\"/>";
Email.Priority = MailPriority.High;
//邮件主题
Email.Subject = mailSubject;
Email.SubjectEncoding = Encoding.GetEncoding(936);
//邮件主题
Email.Subject = mailSubject;
Email.SubjectEncoding = Encoding.GetEncoding(936);
//邮件附件
for (int i = 0; i < arrFilePath.Count; i++)
{
string file = arrFilePath[i].ToString(); //附件路径
Attachment data = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
System.Net.Mime.ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
// Add the file attachment to this e-mail message.
Email.Attachments.Add(data);
}
SmtpClient Client = new SmtpClient("172.30.1.13");
Client.UseDefaultCredentials = false;
Client.Credentials = new System.Net.NetworkCredential("shoa", "shnetweb.1234");
Client.DeliveryMethod = SmtpDeliveryMethod.Network;
for (int i = 0; i < arrFilePath.Count; i++)
{
string file = arrFilePath[i].ToString(); //附件路径
Attachment data = new Attachment(file, System.Net.Mime.MediaTypeNames.Application.Octet);
// Add time stamp information for the file.
System.Net.Mime.ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
// Add the file attachment to this e-mail message.
Email.Attachments.Add(data);
}
SmtpClient Client = new SmtpClient("172.30.1.13");
Client.UseDefaultCredentials = false;
Client.Credentials = new System.Net.NetworkCredential("shoa", "shnetweb.1234");
Client.DeliveryMethod = SmtpDeliveryMethod.Network;
try
{
Client.Send(Email);
}
catch (SmtpFailedRecipientsException ex)
{
for (int i = 0; i < ex.InnerExceptions.Length; i++)
{
SmtpStatusCode status = ex.InnerExceptions[i].StatusCode;
if (status == SmtpStatusCode.MailboxBusy || status == SmtpStatusCode.MailboxUnavailable)
{
//Response.Write("Delivery failed - retrying in 5 seconds.");
System.Threading.Thread.Sleep(5000);
Client.Send(Email);
}
}
}
catch (Exception ex)
{
return false;
}
finally
{
for (int i = 0; i < Email.Attachments.Count; i++) //释放占用excel资源
{
Email.Attachments[i].Dispose();
}
}
return true;
}
#endregion
{
Client.Send(Email);
}
catch (SmtpFailedRecipientsException ex)
{
for (int i = 0; i < ex.InnerExceptions.Length; i++)
{
SmtpStatusCode status = ex.InnerExceptions[i].StatusCode;
if (status == SmtpStatusCode.MailboxBusy || status == SmtpStatusCode.MailboxUnavailable)
{
//Response.Write("Delivery failed - retrying in 5 seconds.");
System.Threading.Thread.Sleep(5000);
Client.Send(Email);
}
}
}
catch (Exception ex)
{
return false;
}
finally
{
for (int i = 0; i < Email.Attachments.Count; i++) //释放占用excel资源
{
Email.Attachments[i].Dispose();
}
}
return true;
}
#endregion
相关推荐
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
3.在c#程序中放音乐的帮助类 使用C#播放音乐的帮助类,只需要调用方法就可以放音乐了 GDI+相关,图像相关 1.生成缩略图的类文件SmallImage 一个把图片生成缩略图的类,可以设置大小,非常好用,希望大家喜欢哦。 ...
人才招聘系统2.5.1源码 是面向中小企业和个人站长建站时,最具性价比的一套...12【增加】后台管理员发布文章和发送邮件时,可以插入图片。[../Admin/Admin_Article.aspx][../Admin/Admin_Email.aspx][../ckfinder/]
20.16 自动调用OutLook发送邮件 20.17 弹出窗口选择颜色 20.18 弹出框式邮件发送 20.19 把网站作为用户的Active桌面 20.20 判断是否安装了flash插件 第21章 流行技术:DOM和userData的应用技巧 21.1 使用userData...
20.16 自动调用OutLook发送邮件 20.17 弹出窗口选择颜色 20.18 弹出框式邮件发送 20.19 把网站作为用户的Active桌面 20.20 判断是否安装了flash插件 第21章 流行技术:DOM和userData的应用技巧 21.1 使用userData...
和普通的蓝牙、红外无线打印机不同,gprs无线打印机对距离没有限制,打印机中插入普通的sim手机卡即可接收到各个系统或者短信发送过来文字信息并进行打印。 6.调度系统管理模块:通过配备的GPS设备实时监控骑士当前...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
代码里用了备份dll的方法,因此在自定义的函数中可以直接调用在内存中备份的dll代码,而不需要再把函数头部改来改去。 IOCP反弹远控客户端模型,外加上线服务端,全部代码注释! 如题。这个是IOCP远程控制软件的...
其次详细讲解了jQuery的各种选择器、jQuery操作DOM的方法、jQuery中的事件与应用、jQuery中的动画和特效、Ajax在jQuery中的应用,以及各种常用的jQuery插件的使用方法和技巧,所有这些知识点都配有完整的示例(包括...