在Managed Code通过Google Gmail发送邮件以及如何通过Outlook配置Gmail
在项目开发中,发送邮件时一种非常常见的功能。一般的情况下,大型的公司都有自己的邮件系统,我们可以直接通过公司的Pop/SMTP Server进行邮件的发送和接收。不过,对于一些小公司不具有这样的条件,他们一般通过一些公共的邮件服务通过商提供的邮件服务。比如Sina,163就是很好的、常用的邮件服务。不过相比之下,我还是习惯使用Google Gmail。
接下来,我将介绍两方面来介绍今天的内容,如果通过Managed code通过Gmail进行邮件的发送,以及如何在Outlook中配置Gmail。今天介绍的东西和技术不是很沾边。只是觉得具有一定的实用性,同时介绍一下我在使用过程遇到的一些问题,希望给大家在使用过程中提供一些参考。
一、在Managed code中通过Gmail发送邮件我们知道,SMTP是我们最常用的邮件传输的协议。通过SMTP方式,我们只需要配置相应的STMP Server和Port,使用我们的帐号和密码登录到STMP Server,理论上我们就可以进行邮件的发送了。对于Google Gmail,对应的信息如下:
你通过你注册的Gmail帐号和密码就可以登录smtp.gmail.com。下面是一段简单的C# 代码。
29: NetworkCredential crendetial = new NetworkCredential(USER_ID, PASSWORD);
30: mailClient.Credentials = crendetial;
31: MailMessage message = new MailMessage(ADDRESS_FROM, ADDRESS_TO, "This is a subject", "This is the body of the mail");
32:
33: mailClient.Send(message);
34: Console.WriteLine("Mail has been sent to {0}", ADDRESS_TO);
35: }
36: }
37: }
熟悉System.Net.Mail. SmtpClient,对上面的Code应该是很熟悉了,在这里我就不想对上面的逻辑多做介绍了。不过我需要补充几点的是:
通过Gmail,你只能以你登录到SMTP Server的Account的名义对外发信,以上面为例,我以” MyAccount”最为Gmail的Account登录,向Email address 为to@gmail.com发送邮件,虽然在SmtpClient.Send方法中的我指定的From address为from@gail.com,当收信人受到该邮件的时候,邮件的发件人是MyAccount@gail.com,不会为from@gail.com。这些很有必要的,可以防止你利用别人的名义发送邮件。这种机制并不是通用的,我就和同事开过这样的玩笑:通过公司的STMP Server以另一个同事的名义向他发邮件。
Server的Port为25,465和587,但是在代码中,我使用25和587一切正常,当时当我使用465的时候,怎么也发不出去。但是当我在Outlook中把Port配置为465的时候,发送邮件也正常。我还没来得及查阅到底是什么问题。知道原因的朋友,请不吝赐教。
对于像这种邮件服务功能的代码,我们一般写成可配置的。因为对于对于帐户和密码,甚至是STMP Server,都有可能经常的变换。但是我们不用通过常用的 AppSettings 来配置,也不用定义我们的Custom ConfigurationSection。因为Configuration System已经为我们定义的内置的 mailSettings 来配置邮件相关的信息。
对于Gmail,from实际上没有什么意义。现在我们就可以进一步地简化我们的代码。
5: MailMessage message = new MailMessage(ADDRESS_FROM, ADDRESS_TO, "This is a subject", "This is the body of the mail");
6: mailClient.Send(message);
7: Console.WriteLine("Mail has been sent to {0}", ADDRESS_TO);
8: }
二、通过Outlook来配置Gmail
Outlook作为专业的邮件管理的办公软件,为我们进行邮件的接收和发送、以及邮件的管理提供了极大的便利。下面我来简单介绍一下如何通过Outlook来配置Gmail。
步骤一
登录Gmail,通过Settings Navigator进行Gmail的设置。
步骤二
选择”Forwarding and POP” Tab中选中Enable POP for all mail (even mail thats already been downloaded) 选项。
步骤三
在Outlook中,通过Tools- Options- Mail
Setup- Email accounts进入Account Setting对话框。如果你已经有了一个Account,那么在第一个tab
“Email”中更新的该Account。进行如下设置。如果你需要新创建一个account, 请直接到Step6
步骤四:
点击 “More Setting”,弹出”Internet E-mail setting”对话框,选择”Advance” Table,进行如下设置:
步骤五:
选择”Outgoing Server” Tab,做如下设置
步骤六:
Account Setting对话框中Click "new..."按钮,就如"Add New Email Account"对话框,选择第一个选项。
步骤七:
Click “Next”,选择"Manually cinfigure server seetings or additional server types" Check Box.
步骤八:
点击 “Next”,选择第一个选项"Internet E-Mail",接下来的配置就和上面一样了。
微信公众账号:大内老A
微博:www.weibo.com/artech
如果你想及时得到个人撰写文章以及著作的消息推送,或者想看看个人推荐的技术资料,可以扫描左边二维码(或者长按识别二维码)关注个人公众号(原来公众帐号蒋金楠的自媒体将会停用)。
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 原文链接
相关文章
- 智能家庭本周锋闻:智能家居缺席Google I/O 大会
- 字节跳动正大量招聘芯片工程师或准备自研芯片;Google放缓招聘;Android 13 Beta 4发布|极客头条
- Linux下部署SSH登录时的二次身份验证环境记录(利用Google Authenticator)
- Google 人机验证(reCaptcha)无法显示解决方案
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- 高德,百度,Google地图定位偏移以及坐标系转换
- Google Interview University - 坚持完成这套学习手册,你就可以去 Google 面试了
- 【错误记录】Google Play 上架报错 ( 您的应用包含违反“元数据”政策的内容 | GP 政策中心 )
- 【Google Play】内部测试版本分发设置 ( 测试链接 | 配置测试权限 | 下载测试应用 )
- 【Google Play】App Bundle 使用详解 ( 应用模块化 )
- 图解 Google V8 # 13:字节码(一):V8为什么又重新引入字节码?
- 图解 Google V8 # 10:机器代码:二进制机器码究竟是如何被CPU执行的?
- Google秘密大搜查!