65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 SmtpClient 类发送电子邮件的简单有效方法

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.74/5 (34投票s)

2009 年 8 月 4 日

CPOL

2分钟阅读

viewsIcon

143853

downloadIcon

3016

使用 SmtpClient 类发送电子邮件的简单有效方法

引言

SMTP(发音为单个字母)实际上代表什么? 它是简单邮件传输协议的缩写,该协议用于在服务器之间发送电子邮件。 大多数通过 Internet 发送邮件的电子邮件系统都使用 SMTP 将邮件从一台服务器发送到另一台服务器; 然后可以使用电子邮件客户端使用 POPIMAP 服务器以及配置电子邮件应用程序时的 SMTP 服务器来检索邮件。

在本文中,我们将创建一个简单的函数来发送电子邮件。

背景

允许用户从 Web 应用程序/Windows 应用程序发送反馈是一个非常常见的功能。 我关心的是如何使用 Microsoft Visual Studio .NET 使其简单化。

Using the Code

现在我们将讨论我用于此功能的 .NET 库。 Microsoft Visual Studio .NET 提供了以下命名空间

  • System.Net
  • System.Net.Mail

我们将使用以下类,这些类将在上述命名空间中找到

  • MailMessage
  • NetworkCredential
  • SmtpClient

在开始之前,让我们简要地看一下上面三个类

MailMessage

表示可以使用 SmtpClient 类发送的电子邮件消息。 MailMessage 类的实例用于构造电子邮件消息,这些消息被传输到 SMTP 服务器,以便使用 SmtpClient 类进行传递。

要指定电子邮件消息的发送者、收件人和内容,请使用 MailMessage 类的相关属性。

更多详细信息可以在此链接中找到。

NetworkCredential

NetworkCredential 类是一个基类,它在基于密码的身份验证方案(如 basic、digest、NTLM 和 Kerberos)中提供凭据。 实现 ICredentials 接口的类(例如 CredentialCache 类)返回 NetworkCredential 对象。

此类不支持基于公钥的身份验证方法,例如安全套接字层 (SSL) 客户端身份验证。

更多详细信息可以在此链接中找到。

SmtpClient

允许应用程序使用简单邮件传输协议 (SMTP) 发送电子邮件。

SmtpClient 类用于将电子邮件发送到 SMTP 服务器进行传递。 下表所示的类用于构造可以使用 SmtpClient 类发送的电子邮件消息。

更多详细信息可以在此链接中找到。

C# 代码示例

 void sendEmail(string strFrom
                             , string strTo
                             , string strSubject
                             , string strBody)
        {
            /// Author, Md. Marufuzzaman
            /// Created,
            /// Local dependency, Microsoft .Net framework 
            /// Description, Send an email using (SMTP).           

            MailMessage objMailMessage = new MailMessage();
            System.Net.NetworkCredential objSMTPUserInfo = 
				new System.Net.NetworkCredential();
            SmtpClient objSmtpClient = new SmtpClient();

            try
            {
                objMailMessage.From = new MailAddress(strFrom);
                objMailMessage.To.Add(new MailAddress(strTo));
                objMailMessage.Subject = strSubject;
                objMailMessage.Body = strBody;

                objSmtpClient = new SmtpClient("172.0.0.1"); /// Server IP
                objSMTPUserInfo = new System.Net.NetworkCredential
				("User name", "Password","Domain");
                objSmtpClient.Credentials = objSMTPUserInfo;
                objSmtpClient.UseDefaultCredentials = false;
                objSmtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

                objSmtpClient.Send(objMailMessage);
            }
            catch (Exception ex)
            { throw ex; }

            finally
            {
                objMailMessage = null;
                objSMTPUserInfo = null;
                objSmtpClient = null;
            }
        }

下面给出了 SmtpClient 类的成员表

描述

Attachment

表示文件附件。 此类允许您将文件、流或文本附加到电子邮件消息。

MailAddress

表示发件人和收件人的电子邮件地址。

MailMessage

表示电子邮件消息。

关注点

NetworkCredential 类不支持基于公钥的身份验证方法,例如安全套接字层 (SSL) 客户端身份验证。

结论

这是一个非常简单易用的方法。 我希望它对您有所帮助。 尽情享受吧!

历史

  • 2009 年 8 月 5 日:初始帖子
© . All rights reserved.