在项目开发中,发送邮件时一种非常常见的功能。一般的情况下,大型的公司都有自己的邮件系统,我们可以直接通过公司的Pop/SMTP Server进行邮件的发送和接收。不过,对于一些小公司不具有这样的条件,他们一般通过一些公共的邮件服务通过商提供的邮件服务。比如Sina,163就是很好的、常用的邮件服务。不过相比之下,我还是习惯使用Google Gmail。
接下来,我将介绍两方面来介绍今天的内容,如果通过Managed code通过Gmail进行邮件的发送,以及如何在Outlook中配置Gmail。今天介绍的东西和技术不是很沾边。只是觉得具有一定的实用性,同时介绍一下我在使用过程遇到的一些问题,希望给大家在使用过程中提供一些参考。
一、在Managed code中通过Gmail发送邮件
我们知道,SMTP是我们最常用的邮件传输的协议。通过SMTP方式,我们只需要配置相应的STMP Server和Port,使用我们的帐号和密码登录到STMP Server,理论上我们就可以进行邮件的发送了。对于Google Gmail,对应的信息如下:
Pop3 Server (Port: 995) :pop.gmail.com, SSL
SMTP Server (Port: 25, 465, 587):smtp.gmail.com, TLS
你通过你注册的Gmail帐号和密码就可以登录smtp.gmail.com。下面是一段简单的C# Code。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.Net.Mail;
usingSystem.Net;
namespaceArtech.Mail.ConsoleApp
{
classProgram
{
conststringADDRESS_FROM="from@gail.com";
conststringADDRESS_TO="to@gmail.com";
conststringUSER_ID="MyAccount";
conststringPASSWORD="password";
conststringSMTP_SERVER="smtp.gmail.com";
constintPORT=587;
staticvoidMain(string[]args)
{
SendMail(SMTP_SERVER,PORT);
Console.Read();
}
staticvoidSendMail(stringsmtpServer,intport)
{
SmtpClientmailClient=newSmtpClient(smtpServer,587);
mailClient.EnableSsl=true;
NetworkCredentialcrendetial=newNetworkCredential(USER_ID,PASSWORD);
mailClient.Credentials=crendetial;
MailMessagemessage=newMailMessage(ADDRESS_FROM,ADDRESS_TO,"Thisisasubject","Thisisthebodyofthemail");
mailClient.Send(message);
Console.WriteLine("Mailhasbeensentto'{0}'",ADDRESS_TO);
}
}
}
熟悉System.Net.Mail. SmtpClient,对上面的Code应该是很熟悉了,在这里我就不想对上面的逻辑多做介绍了。不过我需要补充几点的是:
1.通过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以另一个同事的名义向他发邮件。
2.虽然Google对外宣称他们开发的SMTP Server的Port为25,465和587,但是在代码中,我使用25和587一切正常,当时当我使用465的时候,怎么也发不出去。但是当我在Outlook中把Port配置为465的时候,发送邮件也正常。我还没来得及查阅到底是什么问题。知道原因的朋友,请不吝赐教。
3.对于像这种邮件服务功能的代码,我们一般写成可配置的。因为对于对于帐户和密码,甚至是STMP Server,都有可能经常的变换。但是我们不用通过常用的<AppSettings>来配置,也不用定义我们的Custom ConfigurationSection。因为Configuration System已经为我们定义的内置的<mailSettings>来配置邮件相关的信息。比如:
<?xmlversion="1.0"encoding="utf-8"?>
<configuration>
<system.net>
<mailSettings>
<smtpfrom="MyAccount@gmail.com">
<networkhost="smtp.gmail.com"
password="password"
port="587"
userName="MyAccount@gmail.com"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
对于Gmail,from实际上没有什么意义。
现在我们就可以进一步地简化我们的Managed code了:
staticvoidSendMail()
{
SmtpClientmailClient=newSmtpClient();
mailClient.EnableSsl=true;
MailMessagemessage=newMailMessage(ADDRESS_FROM,ADDRESS_TO,"Thisisasubject","Thisisthebodyofthemail");
mailClient.Send(message);
Console.WriteLine("Mailhasbeensentto'{0}'",ADDRESS_TO);
}
二、通过Outlook来配置Gmail
Outlook作为专业的邮件管理的办公软件,为我们进行邮件的接收和发送、以及邮件的管理提供了极大的便利。下面我来简单介绍一下如何通过Outlook来配置Gmail。
1.登录Gmail,通过Settings Navigator进行Gmail的设置。
2.选择”Forwarding and POP” Tab中选中Enable POP for all mail (even mail that's already been downloaded) 选项。
3. 在Outlook中,通过Tools->Options->Mail Setup->Email accounts进入Account Setting对话框。如果你已经有了一个Account,那么在第一个tab “Email”中更新的该Account。进行如下设置。如果你需要新创建一个account, 请直接到Step6。
4. Click “More Setting”,弹出”Internet E-mail setting”对话框,选择”Advance” Table,进行如下设置:
5. 选择”Outgoing Server” Tab,做如下设置
6. Account Setting对话框中Click "new..."按钮,就如"Add New Email Account"对话框,选择第一个选项。
7.Click “Next”,选择"Manually cinfigure server seetings or additional server types" Check Box.
8. Click “Next”,选择第一个选项"Internet E-Mail",接下来的配置就和上面一样了。
分享到:
相关推荐
DirectX for Managed Code是微软为.NET开发者提供的一套API,旨在让C#和其他.NET语言的程序员能够充分利用DirectX的功能来创建高性能的图形和多媒体应用程序。DirectX是一个包含多个子组件的集合,主要用于游戏开发...
《Managed.Code.Rootkits.2011》是关于.NET Rootkits的一个专题,深入探讨了在.NET框架下创建和检测Rootkit的技术。Rootkit是一种恶意软件工具,它隐藏在操作系统内部,使得攻击者能够秘密地控制受感染的系统,同时...
总的来说,"DirectX for Managed Code"是一个让.NET开发者能够轻松利用DirectX功能的工具,尽管它在较新的开发环境中可能不是首选,但对于需要在.NET环境中利用DirectX特性的项目,它仍然是一个宝贵的资源。
在IT行业中,微软Outlook和Exchange是两个非常重要的电子邮件和协作平台。Exchange Server是微软公司为企业级用户设计的邮件服务器,而Outlook则是其客户端应用,通常与Exchange配合使用,提供高效、安全的邮件处理...
在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(上部分)
6. iPhone证书安装:通过邮件附件方式,以及在iPhone上添加和配置邮件账户。 这个过程对于在移动设备上安全地接入公司邮件系统至关重要,特别是对于那些需要保持高效沟通的远程工作者或经常出差的员工来说。正确...
ODP.NET Managed 121020 是Oracle公司为.NET开发者提供的一个数据库连接组件,主要用于在C#等.NET环境中与Oracle数据库进行交互。这个压缩包包含了一系列用于安装、卸载以及查阅信息的文件,下面将详细介绍这些文件...
通过深入研究这些示例,开发者不仅可以理解Managed DirectX 9的基本用法,还能逐步掌握游戏编程中的关键技巧。此外,由于源码是用C#编写的,因此对于已经熟悉.NET环境的开发者来说,更容易上手和扩展。 在实际项目...
Chapter 1: An Introduction to Outlook 2007 Programming 1 Setting Up Outlook VBA 1 Setting Up Macro Security 2 Creating a Code-Signing Certificate 3 Reviewing the VBA Editor Interface and Options 4 ...
Managed VCL是一款.Net Framework下的Delphi和C++ Builder组件程序To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but ...
在ASP.NET 2.0中操作数据:用Managed Code创建存储过程和用户自定义函数(下部分),至此,这个系列的教程就全部发上来了,如果有什么问题请给我留言,谢谢
Delphi.NET技术宣传讲稿 李维 大中华区CTO 2003或2004年 <br>Borland上个月终于卖掉其视为“鸡肋”的CodeGear,而且怎么看也算“贱卖”了 李老师现在也离开了他工作10...青山依旧在,静坐思华年。
通过阅读和运行这些示例,开发者可以理解Managed DirectX如何与.NET Framework交互,以及如何利用其强大的功能来创建高性能的游戏和其他多媒体应用。 在深入学习Managed DirectX 9.0时,你需要理解几个关键概念,...
此外,还需要考虑设备兼容性,确保选择的设备配置能在目标机器上运行。 Device类还涉及到了错误处理和设备丢失的概念。由于某些系统事件(如屏幕保护程序激活或电源管理)可能导致设备丢失,因此程序员必须处理这些...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序...这些代码可能展示了如何配置SMTP和POP3客户端,以及如何处理邮件的各个部分。建议仔细研究这些示例,以便更好地理解和掌握C#中的邮件处理技术。
通过理解`Device`类及其构造函数,以及如何配置开发环境,开发者可以开始构建自己的3D图形和游戏应用。在后续的学习中,还将涉及更多的概念和技术,如顶点缓冲、纹理贴图、光照模型、着色器等,这些都是构建复杂3D...
ODP.NET Managed ODAC122cR1是Oracle Data Provider for .NET的管理版本,专为Oracle数据库12c Release 1(12.2)设计。此组件提供了.NET开发者与Oracle数据库交互所需的接口和工具,使得在.NET环境中开发、部署和...