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

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#中使用smtp发送邮件

    之前做过一个使用SMTP发送邮件的业务,开始用的是qq邮箱,后来换了网易邮箱就不行了,网上的各种解决方式跟坑都试过,后面找了N多资料和研究终于搞定了,代码有两种发送方式,需要的可以下载来看看

    C#程序开发范例宝典(第2版).part08

    实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...

    C# Smtp Email工具V1

    使用.net smtp技术开发的一个发送邮件的小工具,可用在各种项目上做为用户信息反馈等功能。 此工具会自动把邮件中含有的图片添加到附件中,己保证收到邮件时也能看到邮件中的图片。 双语(英,汉),支持模板,...

    ZideunMail:使用dotnet标准的简单发送电子邮件

    Host = "smtp.office365.com", Password = "password", Port = 587, Username = "zideun@outlook.com" }; var ctx = new SmtpContext(emailOut); var msg = new EmailMessage("zideun@outlook.com", "Title", $...

    c#实现邮件的发送

    在做系统开发的时候,经常要用到邮件的发送功能。利用ASP.NET实现邮件的发送功能。

    C#程序开发范例宝典(第2版).part02

    实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...

    C#程序开发范例宝典(第2版).part12

    实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...

    C#.net_经典编程例子400个

    10 实例012 带进度条的状态栏 11 实例013 状态栏中加入图标 12 1.4 导航菜单界面 12 实例014 OutLook界面 12 实例015 带导航菜单的主界面 14 实例016 图形化的导航界面 15 1.5 ...

    C# EXCEL工资条批量发送工具

    当需要给很多人发送邮件(比如工资条、奖金等),又不适合用群发的方式? 以往完成这些任务一条一条复制、粘贴,发送,要花上一整天的时间...本软件基于SMTP协议,无需打开任何如OUTLOOK,foxmail等客户端。方便快捷。

    C#程序开发范例宝典(第2版).part13

    实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...

    tingMailSendSystem--仿OutLook的邮件编辑面板

    smtp.Credentials = new NetworkCredential(userid, password); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; try { smtp.Send(message); flag = true; //MessageBox.Show("发送成功!", "示例", ...

    Winform EXCEL工资条批量发送工具(无源码,只是软件)

    本软件是新鲜出炉的,比大家网上搜到的软件都好用的多,主要用于EXCEL工资表的工资条群发,以往完成这些任务一条一条复制、粘贴,发送,要...本软件基于SMTP协议,无需打开任何如OUTLOOK,foxmail等客户端。方便快捷。

Global site tag (gtag.js) - Google Analytics