/// <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#编程中,发送邮件是一项常见的任务,尤其在用户验证、通知服务或者客户服务中扮演着重要角色。本项目提供了一个简洁的示例,通过一个简单的按钮操作来演示如何实现邮件发送功能,以验证用户的密码或账户信息。...
例如,`<a>`标签用于创建超链接,`<img>`标签用于插入图片。 为了在邮件正文中嵌入图片,我们可以使用`LinkedResource`类。创建`LinkedResource`实例时,需要提供图片文件的本地路径,然后通过`ContentId`属性为其...
总的来说,基于C#的JMAIL邮件系统为开发者提供了一种高效、易用的邮件发送解决方案,适用于各种需要发送邮件的应用场景,如企业内部通信、客户通知、自动提醒等。通过深入学习和实践,开发者可以进一步掌握邮件系统...
可以包括`<p>`标签用于段落,`<a>`标签用于链接,`<img>`标签插入图片,`<style>`标签定义样式等。确保HTML代码符合电子邮件的限制,因为一些邮件客户端可能对HTML有严格的过滤。 4. **MIME类型**:在发送HTML邮件...
本篇文章将详细讲解如何使用C#实现发送邮件的功能,并且在对方打开邮件时能收到通知。这种功能通常通过请求邮件回执(Read Receipt)来实现。 首先,我们需要引入System.Net.Mail命名空间,该命名空间包含了处理...
在这个场景中,"winform邮箱发送源码 可在线编辑附件并发送源码"是一个针对WinForm应用的开发资源,允许用户在程序内编辑邮件内容,并附带附件进行发送。这个功能对于那些需要集成邮件服务的WinForm应用来说非常实用...
标题中的“VBnet、C#、VS、...// 发送邮件 client.Send(mail); ``` 以上就是使用VB.NET、C#、VS、.NET和Spire.Email组件进行邮箱读写的基本介绍。开发者可以根据实际需求,结合这个组件来构建高效、稳定的邮件系统。
"非常实用的c#开发帮助类.zip"这个压缩包很可能包含了一些C#开发者在日常工作中经常需要用到的工具类。下面我们将详细探讨这些可能包含的知识点。 首先,我们可以推测"CommonDAL"可能代表"公共数据访问层",这是一...
9. **用户界面设计**: 虽然描述中未明确指出,但构建邮件系统通常会涉及UI设计,如使用WPF或WinForms创建发送邮件的界面,包括输入框、按钮、选择文件的对话框等。 10. **邮件模板**: 对于频繁发送格式化的邮件,...
为了在邮件正文中插入图片,我们需要使用AlternateView和LinkedResource类。首先,创建一个AlternateView对象,它是MailMessage的视图容器,可以包含HTML或者其他非文本内容。然后,用LinkedResource类来处理图片,...
在本例中,"WS.Email.rar"是一个压缩包文件,其中包含了一个使用C#实现的邮件发送系统代码。这个系统不仅能够发送文本邮件,还支持添加附件和在邮件内容中嵌入图片,这在企业级应用中非常常见,例如自动化报告发送。...
首先,发送邮件的关键在于使用SmtpClient类,它是C#中处理SMTP(简单邮件传输协议)的类,负责将邮件发送到邮件服务器。以下是一个简单的邮件发送示例: ```csharp using System.Net; using System.Net.Mail; ...
- 可以设置定时任务,如使用`schedule`库或者操作系统自带的cron job(在Linux系统中),来定时执行发送邮件的脚本。 2. **Java的SMTP邮件发送**: - 使用`java.util.Properties`配置SMTP服务器参数。 - 创建`...
3. **操作PowerPoint**:Aspose.Slides或SlideLibrary库使得在C#中创建和修改PowerPoint演示文稿成为可能,包括添加幻灯片、更改设计模板、插入图片和动画等。 4. **转换文件格式**:例如,可以使用Aspose.Cells将...
例如,你可以用C#代码来生成新的文档,插入文本、图片,设置样式,甚至执行复杂的公式计算。 2. 表格处理:对于Excel文件,ASPOSEdll支持读取、修改和创建新的电子表格,执行公式计算,处理图表,以及合并和拆分...
2. **嵌入式图片**:在HTML邮件中插入图片通常有三种方法: - **Base64编码**:将图片转换为Base64字符串,并在`<img>`标签的`src`属性中直接引用。这样可以避免因外部链接失效导致的图片无法显示问题。 - **链接...
在IT行业中,C#是一种广泛使用的面向对象的编程语言,尤其在软件开发领域,它具有高效、稳定且功能丰富的特点。本案例集“c#开发案例.rar”主要涵盖了以下几个核心知识点,通过邮件收发、Socket通信、文件操作、...
.NET框架中的C#语言与Microsoft Office组件的集成是开发者常用的一种技术,特别是在处理与Office相关的自动化任务时。这个实例集合提供了C#编程中调用Office组件的多种应用场景,旨在帮助学习者深入理解如何利用C#...
实例中可能包含错误处理的代码,帮助你在遇到问题时能够妥善应对。 3. 泛型:VS2005引入了泛型,使得代码更具有通用性。实例可能包括使用泛型集合、泛型方法等。 4. 枚举与委托:枚举用于定义一组相关值,委托则...
C#提供了丰富的网络编程接口,实例中包含了HTTP请求、FTP上传下载、邮件发送等,帮助你构建能够访问互联网的程序。 八、数据库操作 数据库操作是数据存储的关键,实例展示了如何使用ADO.NET连接SQL Server、SQLite...