如果你想以编程方式使用    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服务器      拒绝上述代码将抛出一个异常。

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

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

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

使用而不是你的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!");
}
}

最新文章

  1. GitHub Windows客户端无法登录
  2. ApexSQL Log-SQL误操作恢复工具
  3. 软件工程随堂小作业——寻找“水桶”(C++)
  4. vs2012 arcgis engine 10 丢失arcgis模板
  5. Trie树入门及训练
  6. mysql远程连接缓慢的问题
  7. Cstring获取第N个字符
  8. Almost Prime
  9. BZOJ 1691: [Usaco2007 Dec]挑剔的美食家( 平衡树 )
  10. unity插件开发——Selection
  11. Nest客户端的基本使用方法
  12. idea的debug调试快捷键
  13. “QObject调用moveToThread()后 该如何释放”及QThread 的启动关闭
  14. Hibernate实例——Customer表的展示
  15. 关于anaconda中jupyter notebook错误
  16. 剑指Offer 58. 对称的二叉树 (二叉树)
  17. Golang的防坑小技巧
  18. Android实现导航菜单随着ListView联动,当导航菜单遇到顶部菜单时停止在哪里,并且listview仍能滑动
  19. LeetCode--035--搜索插入位置
  20. KDD 2018 | 最佳论文:首个面向Facebook、arXiv网络图类的对抗攻击研究

热门文章

  1. [转载]Surging Demo 项目之一
  2. PatentTips - Transitioning between virtual machine monitor domains in a virtual machine environment
  3. 【u247】生物进化
  4. Xposed也要热更新
  5. php替换空格(php函数的设计思路)
  6. iOS开发RunLoop学习:三:Runloop相关类(source和Observer)
  7. css3-6 表格如何设置样式和定位样式是什么
  8. Oracle null 处理
  9. hdu 1052 田忌赛马
  10. 基于 MySQL 5.6 keepalived的双主搭建