`
呼延浩云
  • 浏览: 85387 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
69e5c1d2-1364-320a-a0f2-0de5143310d8
互联网的那点事
浏览量:11042
社区版块
存档分类
最新评论

C#中的SMTP配置Outlook.Com SMTP主机

阅读更多

如果你想以编程方式使用Outlook.com或Gmail帐户作为SMTP主机发送电子邮件,也有为了得到这一切工作的几件事情要注意。

使用基本的System.Net.Mail库,发送电子邮件一般是相当简单的。不过,如果你想用你的Outlook.Com或Gmail帐户作为SMTP主机发送,您将最有可能需要采取一些额外的步骤,如果你有两个阶段授权启用(和你有两个阶段启用身份验证吧??!!)。  

SMTP配置举例Outlook.Com SMTP主机

下面是一个基本类SMPT配置为使用Outlook.Com的SMTP发送邮件:

基本邮件配置设置Outlook.Com SMTP: 
using System;

/ / 你将需要添加一个引用到这个库:
using System.Net.Mail;

namespace SmtpMailConnections
{
    public class OutlookDotComMail
    {
        string _sender = "";
        string _password = "";
        public OutlookDotComMail(string sender, string password)
        {
            _sender = sender;
            _password = password;
        }  

        public void SendMail(string recipient, string subject, string message)
        {
            SmtpClient client = new SmtpClient("smtp-mail.outlook.com");

            client.Port = 587;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            System.Net.NetworkCredential credentials = 
                new System.Net.NetworkCredential(_sender, _password);
            client.EnableSsl = true;
            client.Credentials = credentials;

            try
            {
                var mail = new MailMessage(_sender.Trim(), recipient.Trim());
                mail.Subject = subject;
                mail.Body = message;
                client.Send(mail);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw ex;
            }
        }
    }
}

正如你所看到的,我们一直保持这个相当小的清楚的目的。我们初始化我们的简单类的用户名(在本例中,我们Outlook.Com电子邮件地址)和密码。

用法示例

我们可以调用这个类来发送邮件这样的(这个例子是一个简单的控制台应用程序):

发送邮件使用邮件发件人
class Program
{
    static void Main(string[] args)
    {
        string mailUser = "YourAccount@outlook.com";
        string mailUserPwd = "YourPassword";

        var sender = new OutlookDotComMail(mailUser, mailUserPwd);
        sender.SendMail("recipient@example.com", "Test Mail", "Hello!");
    }
}

如果你运行上面的代码中,使用自己的Outlook.Com电子邮件地址和密码,都应该可以正常工作。

除非您已启用了两级授权您Outlook.Com帐户。如果你有,你需要创建一个应用程序特定的密码,或当您的凭据是由Outlook.Com SMTP服务器拒绝上述代码将抛出一个异常。

创建一个应用程序特定的密码,如果你有2级认证已启用

要创建一个应用程序专用密码,登录到您的Outlook.com帐户,并进入帐户设置- >安全资讯- >应用程序密码

1

 

单击创建一个新的应用程序密码的链接,瞧 – 你现在有一个新的密码为你的应用程序中使用:

2

以此作为在代码中的密码,就可以成功了:

使用而不是你的Outlook.Com帐户密码的应用程序密码:
class Program
{
    static void Main(string[] args)
    {
        string mailUser = "YourAccount@outlook.com";
        string mailUserPwd = "bnppnnenfmpiixty";

        var sender = new OutlookDotComMail(mailUser, mailUserPwd);
        sender.SendMail("recipient@example.com", "Test Mail", "Hello!");
    }
}

 

2
0
分享到:
评论

相关推荐

    C#用OUTLOOK收发邮件.zip

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows桌面应用和.NET框架相关项目时。本主题聚焦于如何利用C#与Microsoft Outlook进行集成,实现邮件的发送和接收功能。这通常涉及到使用Microsoft.Office....

    C#中使用smtp发送邮件

    SmtpClient smtp = new SmtpClient("smtp.qq.com", 587); smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential("your-email@qq.com", "password"); ``` - 网易邮箱(使用STARTTLS): ```csharp...

    C# SMTP协议 发送邮件的实例

    SmtpClient smtp = new SmtpClient("smtp.example.com"); // 替换为你的SMTP服务器地址 smtp.Port = 587; // 根据SMTP服务器的端口号进行设置,通常为25或587 smtp.UseDefaultCredentials = false; smtp....

    C#调用Outlook发送邮件

    本主题聚焦于如何利用C#代码调用Outlook应用程序来发送邮件,这是一个常见的需求,特别是在自动化任务或者集成系统通信中。下面将详细介绍这个过程。 首先,要调用Outlook发送邮件,我们需要使用Microsoft.Office....

    c#网络操作之调用Outlook发送邮件源码.rar

    在这个场景中,我们关注的是如何利用C#调用Outlook发送邮件。这个压缩包文件“c#网络操作之调用Outlook发送邮件源码.rar”提供了相关的源代码示例,帮助开发者理解并实现这一功能。 首先,让我们了解C#中发送邮件的...

    C#邮件收发,收件有点乱码

    在C#编程中,邮件收发是一个常见的任务,通常我们会使用.NET Framework提供的System.Net.Mail命名空间或者第三方库如Jmail来实现。标题提到的问题“C#邮件收发,收件有点乱码”,这是一个典型的数据编码问题,可能...

    用C#实现邮件发送,有点类似于outlook,关系

    在C#中实现邮件发送功能是一项常见的任务,尤其对于开发企业级应用或者个人项目时,如Outlook这样的邮件客户端有着类似的需求。本文将详细讲解如何使用C#进行邮件发送,涉及的关键技术包括网络编程、事件处理和委托...

    smtp.zip_vbs

    在“smtp.zip_vbs”这个场景中,我们讨论的是如何使用VBScript编写脚本来通过SMTP协议发送带有附件的邮件。 首先,我们需要理解VBScript的基本语法和结构。VBScript是基于Visual Basic的,所以它的语法非常直观。它...

    用自动化方式调用OUTLOOK发送电子邮件.zip

    在这个过程中,需要注意的是,由于使用了COM互操作,程序需要与Outlook进程进行交互,因此,如果用户没有打开Outlook或者没有正确配置Outlook账户,可能会影响邮件发送。此外,这种方法不适合大规模的邮件发送,因为...

    调用Outlook发送邮件_outlookc_outlook_

    在IT行业中,编程语言C#为我们提供了丰富的功能,其中之一就是能够与Microsoft Office应用程序进行交互,例如Outlook。本文将深入探讨如何使用C#调用Outlook发送邮件,并提供相关的源码解析。 首先,我们需要理解C#...

    C# 发送邮件关键代码,绝对能用2010年上传

    - **Hotmail/Outlook**: `smtp.live.com`, 使用端口587并启用SSL加密。 ```csharp if (stmp == "1") // Yahoo 配置 { client.Host = "smtp.mail.yahoo.com"; client.Credentials = new NetworkCredential...

    C# Outlook

    本项目“C# Outlook”显然是一款使用C#语言编写的Outlook客户端,其目的是为用户提供类似于Microsoft Outlook的功能,可能包括邮件管理、日历、联系人管理以及任务安排等。下面将详细探讨C#语言在开发Outlook客户端...

    C#编程让Outlook乖乖交出帐户密

    在IT领域,尤其是在软件开发中,C#是一种广泛使用的编程语言,尤其在Windows应用程序和.NET框架下。本篇文章将深入探讨如何使用C#来获取Outlook应用程序中的账户密码信息,这对于开发者来说,可能是出于诊断、自动化...

    C#邮件推送

    这通常涉及到使用SMTP服务器的主机名(如smtp.gmail.com或smtp.outlook.com)以及可能需要的端口号(如587或465)。 第二步,用户可以选择导入Excel文件来获取收件人列表。在C#中,可以使用Microsoft.Office....

    通过用户名密码验证身份,读取Outlook邮件及其附件

    在.NET环境中,`System.Net.Mail`类库可以用于SMTP通信,而`Microsoft.Exchange.WebServices`允许与EWS交互。 4. **邮件读取**:一旦认证成功,你可以通过API调用来列举邮件、获取邮件内容、解析邮件结构、下载附件...

    youjian.rar_boomber.e_outlook_pop3_smtp_youjian

    在Outlook的设置中,用户可以配置SMTP和POP3服务器信息,实现邮件的收发。而在编程中,Outlook的自动化控制(也称为Outlook COM对象模型)允许开发者使用VBA(Visual Basic for Applications)或其他支持COM的语言...

    vs2008 asp.net 用outlook发邮件

    因此,在生产环境中应考虑更安全的发送方式,如SMTP服务。 3. **性能考量**: 对于高并发场景,直接使用Outlook可能不是最佳选择。可以考虑使用专门的邮件发送服务或API。 #### 七、总结 通过上述方法,可以在VS...

    c# HotMail收发邮件

    3. **身份验证**:HotMail(现在被称为Outlook.com)使用的是微软的OAuth2协议进行身份验证。开发者需要注册应用程序,获取客户端ID和密钥,然后通过授权码流程获取访问令牌,以便在发送和接收邮件时使用。 4. **...

    发邮件,支持SSL\TLS,支持Gmail、Hotmail、yahoo

    Gmail是Google提供的服务,Hotmail是Microsoft的Outlook.com的一部分,Yahoo邮件则是Verizon Media的一部分。这些服务商通常会提供SMTP服务器地址和所需的端口号,以及是否需要使用SSL/TLS等配置信息。 “CSmtp_v2_...

    一个hotmail邮件的代码

    标题 "一个hotmail邮件的代码" 暗示我们要讨论的是如何使用C#编程语言来发送或处理Hotmail(现在通常称为Outlook.com)的电子邮件。Hotmail是Microsoft提供的一个电子邮件服务,而C#是一种广泛用于Windows平台开发的...

Global site tag (gtag.js) - Google Analytics