伊缘网 首页
 设为首页    加入收藏    用户帮助    联系我们 
网站首页 新闻动态 技术文章 Flash整站 精彩网文 资源下载 视频教程
网上商城 Flash动漫 网页特效 酷站欣赏 BBS论坛 在线工具 留言本站
  F-CMS Flash CMS   CXT Flash Cms   SXW Flash CMS   EXW Flash Cms   
  您的位置: 伊缘网 >> 网络学堂 >> 建站技术 >> ASP.NET
 阅读文章

在.net中通过Google Gmail发送邮件

  文章作者:佚名来源:星恋伊缘网浏览次数:6976字体:
 阅读权限:游客身份阅读花费:0 E币添加时间:2007-5-18 上午 12:54:50提交会员:esing
皮具制造生产企业,专注时尚包包
提示:登陆本站会员系统后,网站系统将不显示任何广告!如果您还不是本站会员请注册本站会员,谢谢您对本站的关注!

在项目开发中,发送邮件时一种非常常见的功能。一般的情况下,大型的公司都有自己的邮件系统,我们可以直接通过公司的Pop/SMTP Server进行邮件的发送和接收。不过,对于一些小公司不具有这样的条件,他们一般通过一些公共的邮件服务通过商提供的邮件服务。比如Sina,163就是很好的、常用的邮件服务。不过相比之下,我还是习惯使用Google Gmail。

一、在.net中通过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。

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Net;

namespace Artech.Mail.ConsoleApp
{
    
class Program
    
{

        
const string ADDRESS_FROM = "from@gail.com";
        
const string ADDRESS_TO = "to@gmail.com";
        
const string USER_ID = "MyAccount";
        
const string PASSWORD = "password";
        
const string SMTP_SERVER = "smtp.gmail.com";
        
const int PORT = 587;

        
static void Main(string[] args)
        
{


                SendMail(SMTP_SERVER, PORT);
                Console.Read();        
           
        }


        
static void SendMail(string smtpServer, int port)


        
{
            SmtpClient mailClient 
= new SmtpClient(smtpServer, 587);
            mailClient.EnableSsl 
= true;
            NetworkCredential crendetial 
= new NetworkCredential(USER_ID, PASSWORD);

            mailClient.Credentials 
= crendetial;
            MailMessage message 
= new MailMessage(ADDRESS_FROM, ADDRESS_TO, "This is a subject""This is the body of the mail");
           
            mailClient.Send(message);
            Console.WriteLine(
"Mail has been sent to '{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>来配置邮件相关的信息。比如:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  
<system.net>
    
<mailSettings>
      
<smtp from="MyAccount@gmail.com">
        
<network host="smtp.gmail.com"
                 password
="password"
                 port
="587"
                 userName
=" MyAccount @gmail.com"/>
      
</smtp>
    
</mailSettings>
  
</system.net>
</configuration>

对于Gmail,from实际上没有什么意义。

现在我们就可以进一步地简化我们的Managed code了:

static void SendMail()
        
{

            SmtpClient mailClient 
= new SmtpClient();
            mailClient.EnableSsl 
= true;
            MailMessage message 
= new MailMessage(ADDRESS_FROM, ADDRESS_TO, "This is a subject""This is the body of the mail");



            mailClient.Send(message);
            Console.WriteLine(
"Mail has been sent to '{0}'", ADDRESS_TO);
        }



  Tags:  发送邮件  Google Gmail  .net  
·上篇文章:ASP时间函数
·下篇文章:用ASP CSS实现随机背景
复制 】 【 打印
 相关文章
·百度资料: 在.net中通过Google Gmail发送邮件
·asp.net 上传图片+自动生成缩略图+图片水印功能 2010-6-13 下午 05:28:41
·Asp.net 5种页面转向法 2007-7-10 下午 10:15:52
·三十三种ASP.NET常用代码 2007-6-12 上午 03:48:43
·.net数据操作的最佳实践 2007-6-7 下午 07:06:28
·用asp.net动态创建类的实例 2007-5-22 上午 02:42:55
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系我们,我们尽快予以更正,谢谢。
 相关评论
【文章评论已关闭】
伊缘网