如果你想以编程方式使用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帐户,并进入帐户设置- >安全资讯- >应用程序密码:
单击创建一个新的应用程序密码的链接,瞧 – 你现在有一个新的密码为你的应用程序中使用:
以此作为在代码中的密码,就可以成功了:
使用而不是你的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!"); } }
相关推荐
之前做过一个使用SMTP发送邮件的业务,开始用的是qq邮箱,后来换了网易邮箱就不行了,网上的各种解决方式跟坑都试过,后面找了N多资料和研究终于搞定了,代码有两种发送方式,需要的可以下载来看看
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
使用.net smtp技术开发的一个发送邮件的小工具,可用在各种项目上做为用户信息反馈等功能。 此工具会自动把邮件中含有的图片添加到附件中,己保证收到邮件时也能看到邮件中的图片。 双语(英,汉),支持模板,...
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", $...
在做系统开发的时候,经常要用到邮件的发送功能。利用ASP.NET实现邮件的发送功能。
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
10 实例012 带进度条的状态栏 11 实例013 状态栏中加入图标 12 1.4 导航菜单界面 12 实例014 OutLook界面 12 实例015 带导航菜单的主界面 14 实例016 图形化的导航界面 15 1.5 ...
当需要给很多人发送邮件(比如工资条、奖金等),又不适合用群发的方式? 以往完成这些任务一条一条复制、粘贴,发送,要花上一整天的时间...本软件基于SMTP协议,无需打开任何如OUTLOOK,foxmail等客户端。方便快捷。
实例229 C#中实现文件拖放 317 实例230 文件比较 318 实例231 获取文件夹中的图标资源 319 实例232 获取文件夹下的所有文件夹及文件的名称 321 第7章 操作系统与Windows相关程序 324 7.1 启动相关 325 实例...
smtp.Credentials = new NetworkCredential(userid, password); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; try { smtp.Send(message); flag = true; //MessageBox.Show("发送成功!", "示例", ...
本软件是新鲜出炉的,比大家网上搜到的软件都好用的多,主要用于EXCEL工资表的工资条群发,以往完成这些任务一条一条复制、粘贴,发送,要...本软件基于SMTP协议,无需打开任何如OUTLOOK,foxmail等客户端。方便快捷。