`
shirlly
  • 浏览: 1652001 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

.NET C# 异步发送 要求回执 嵌入图片资源 自定义邮件头 失败通知 html/文本双视图 支持 notes 的邮件

    博客分类:
  • .NET
阅读更多
几个知识点:
HTML格式邮件中,嵌入图片资源
要求收到后,发送回执给你
如果邮件发送失败, 发送错误通知邮件给你
支持 HTML/plain text 双格式的邮件, 收件端可以自行切换
自定义邮件头
异步发送, 支持取消发送
邮件回执, 支持 Lotus Notes 的 domino server
SmtpClient smtp = new SmtpClient();
smtp.EnableSsl = false;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.Host = "smtp.163.com";
smtp.Credentials = new NetworkCredential("三角猫@163.com", "这是密码");

MailMessage mm = new MailMessage();
mm.From = new MailAddress("三角猫@163.com", "三角猫", Encoding.GetEncoding(936));
mm.To.Add("三角猫@gmail.com");

mm.SubjectEncoding = Encoding.GetEncoding(936);
mm.Subject = "三角猫发的测试邮件,呵呵";

mm.BodyEncoding = Encoding.GetEncoding(936);

////普通文本邮件内容,如果对方的收件客户端不支持HTML,这是必需的
string plainTextBody = "如果你邮件客户端不支持HTML格式,或者你切换到“普通文本”视图,将看到此内容";
mm.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainTextBody, null, "text/plain"));

////HTML格式邮件的内容
string htmlBodyContent = "如果你的看到<b>这个</b>, 说明你是在以 <span style="color:red">HTML</span> 格式查看邮件<br><br>";
htmlBodyContent += "<a href="http://www.zu14.cn/">真有意思网</a> <img src="cid:weblogo">";   //注意此处嵌入的图片资源
AlternateView htmlBody = AlternateView.CreateAlternateViewFromString(htmlBodyContent, null, "text/html");

////处理嵌入图片
LinkedResource lrImage = new LinkedResource(@"d:\blogo.gif", "image/gif");
lrImage.ContentId = "weblogo"; //此处的ContentId 对应 htmlBodyContent 内容中的 cid:  ,如果设置不正确,将不会显示图片
htmlBody.LinkedResources.Add(lrImage);

mm.AlternateViews.Add(htmlBody);

////要求回执的标志
mm.Headers.Add("Disposition-Notification-To", "接收回执的邮箱@163.com");

////自定义邮件头
mm.Headers.Add("X-Website", "http://www.zu14.cn/");

////针对 LOTUS DOMINO SERVER,插入回执头
mm.Headers.Add("ReturnReceipt", "1");

mm.Priority = MailPriority.Normal; //优先级
mm.ReplyTo = new MailAddress("回复邮件的接收地址@yahoo.com.cn", "我自己", Encoding.GetEncoding(936));

////如果发送失败,SMTP 服务器将发送 失败邮件告诉我
mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

////异步发送完成时的处理事件
smtp.SendCompleted += new SendCompletedEventHandler(smtp_SendCompleted);

////开始异步发送
smtp.SendAsync(mm, null);

void smtp_SendCompleted(object sender, AsyncCompletedEventArgs e)
        {
            if (e.Cancelled)
            {
                MessageBox.Show("发送被取消");
            }
            else
            {
                if (e.Error == null)
                {
                    MessageBox.Show("发送成功");
                }
                else
                {
                    MessageBox.Show("发送失败: " + e.Error.Message);
                }
            }
        }


参考资料:http://msdn.microsoft.com/en-us/vbasic/bb630227.aspx

转自:http://www.zu14.cn/2008/12/02/net_sendmail2/
分享到:
评论

相关推荐

    C# Asp.Net 邮件异步发送

    本主题将深入探讨如何使用C#实现Asp.NET中的邮件异步发送,包括同步和异步两种方法,以及使用SMTP(Simple Mail Transfer Protocol)模式进行实际的邮件传输。 首先,我们需要了解SMTP。SMTP是一种Internet标准,...

    C#.net发送邮件完整源代码(DEMO完整版)

    在C#.NET编程环境中,发送电子邮件是一项常见的任务,尤其对于开发者来说,可能需要构建自动通知、用户注册验证或数据报告等功能。本资源提供了一个完整的C#.NET发送邮件的DEMO,适用于Visual Studio 2008,且包含了...

    ASP.NET MVC 发送邮件,支持多个邮箱格式。

    ### ASP.NET MVC 发送邮件支持多个邮箱格式的知识点解析 #### 一、ASP.NET MVC 发送邮件概述 在Web开发中,电子邮件功能是一项常见的需求,它可以帮助开发者实现诸如用户注册确认、密码重置通知等功能。ASP.NET ...

    asp.net(C#)发送电子邮件

    在这个场景中,我们关注的是使用ASP.NET和C#语言发送电子邮件的功能。这是一个常见的需求,例如用于注册确认、忘记密码重置或者客户服务通知。 C#是.NET Framework的主要编程语言,提供了丰富的库和API来处理各种...

    HTTP异步请求数据Demo(C#)

    在C#中,我们可以通过调用HttpClient的GetAsync方法实现异步GET请求。例如: ```csharp using System.Net.Http; ... HttpClient client = new HttpClient(); Task&lt;HttpResponseMessage&gt; responseTask = client....

    ASP.NET(C#)Web发送邮件简单源代码

    在这个场景中,我们关注的是如何在ASP.NET环境中利用C#语言来实现Web应用的邮件发送功能。邮件发送在现代Web应用中非常常见,比如用户注册验证、忘记密码重置、订阅通知等。 首先,我们需要了解SMTP(Simple Mail ...

    C# .net winform mail 发送邮件 源码

    在C# .NET环境下开发Windows桌面应用程序(Winform)时,发送邮件是一项常见的需求。标题中的"C# .net winform mail 发送邮件 源码"指的是一种使用C#编程语言,基于.NET Framework的Winform应用,实现邮件发送功能的...

    c#.NET2.0发送邮件Demo源代码

    ### C#.NET 2.0 发送邮件 Demo 源代码解析 #### 一、概述 在本篇文章中,我们将详细解析一个基于 .NET 2.0 的 `System.Net.Mail` 库发送邮件的示例代码。通过这个例子,我们可以学习如何在 C# 中配置邮件发送的...

    C#.NET邮箱发送内容含附件文件源码Demo

    这个C#.NET邮箱发送内容含附件文件源码Demo,是一个很好的学习和参考资源,对于需要在应用中实现邮件发送功能的开发者来说,具有很高的实用价值。通过研究和实践,你可以轻松地将邮件发送功能集成到自己的项目中。

    C#实现定时发送邮件功能

    在本示例中,我们关注的是如何利用C#实现一个定时发送邮件的功能。这个功能通常在需要定期向用户发送通知、报告或其他重要信息的场景下非常有用。我们将探讨以下几个关键知识点: 1. **System.Net.Mail**: 这是.NET...

    C#.NET 封装自定义组件(控件)Dll

    本主题将详细探讨如何使用C#.NET来封装自定义组件,并通过一个自定义数字文本框的实例进行说明。 首先,创建自定义控件的过程通常包括以下步骤: 1. **定义类**:在C#中,我们需要创建一个新的类,这个类将继承自...

    C#异步操作 异步查询数据库 异步处理一行一行加载数据

    在C#编程中,异步操作是现代应用开发的关键特性,尤其在处理大量数据或进行I/O密集型任务时,如查询数据库。本主题将深入探讨C#中的异步概念,如何异步查询数据库,以及如何异步处理一行一行加载的数据。 首先,...

    .NET代码生成器 C# 版 (可自定义模板函数和模板类,及视图实体)

    列出主要功能:  访问三种不同数据库 ... 类似于李天平的,但那个太死了,这个可以自定义函数模板和类模板,及视图实体。 文档请发邮件找我索取。 还有这个完全免费,不需要任何注册。希望大家提意见,我及时改正。

    .net 邮件群发C#源代码

    在实际的邮件群发中,为了提高效率和防止被邮件服务商视为垃圾邮件,我们可能需要使用线程或异步操作来发送邮件。同时,邮件列表通常存储在数据库或文件中,我们需要读取这些数据并循环发送邮件: ```csharp List...

    webkit.net 0.5版,c#和winform嵌入chrome核心浏览器控件

    webkit.net 0.5版,c#和winform嵌入chrome核心浏览器控件 原来的sourceforge有时候连不上,特先下载好再上传上来,并带了一个说明,解决了在编译安后时会遇到的:failed to initialize activation context问题。

    双滑块 trackbar vb.net C#.net

    双滑块 trackbar vb.net C#.net 微软没有提供双滑块trackbar控件,自己修改了下。 可以取滑块的中间值。

    .net/C# QRCode 二维码

    3. **数据类型支持**:除了文本,可能还支持URL、电话号码、电子邮件等特定类型的数据编码。 总之,这个项目提供了一个全面了解如何在C#环境中生成二维码的实践示例,无论是桌面应用还是Web服务,都能帮助开发者...

    asp.net c#代码 上传图片到服务器端和上传到数据库中 并产生缩略图显示在网页中

    在这个特定的知识点中,我们将深入探讨如何使用ASP.NET C#来实现图片上传至服务器、存储到数据库以及生成缩略图并显示在网页上的过程。 首先,上传图片到服务器端是一个基本的文件上传操作。在ASP.NET中,可以使用`...

    ASP.NET WebAPI Token JWT Bearer 认证失败和成功返回自定义数据 Json

    asp.net WebAPI Token Oauth2.0授权自定义返回结果(包括登录正确返回,登录失败返回)。 详细参考:https://blog.csdn.net/u013546115/article/details/105580532

    c#Winform异步线程刷新UI

    在C# WinForm应用开发中,我们经常遇到需要在后台执行耗时操作,同时保持用户界面(UI)的响应性。这就是异步编程的核心应用场景。VS2013支持.net框架4.0,该版本引入了Task类和异步编程模型,使得处理这种需求变得...

Global site tag (gtag.js) - Google Analytics