公司使命:打造嘉兴技术实力最强的网络公司
服务项目:嘉兴网站建设 嘉兴网站制作 嘉兴网站优化
新闻中心

关于asp.net中c#语言所实现的邮件发送功能

发布时间:2009/8/25 10:57:54   文章来源:jiaxingweb   浏览:[  ]   评论:[  ]

    在做asp网站的时候,就在使用jmail组件发送邮件,在做企业网站建设的过程中,好多时候企业的老板或网管他们都不喜欢把留言(信息反馈)功能放到网站的后台,因为他们不是每天都打开网站的后台,所以他们是想让客户(网友)留言的内容直接发送到他们所用的邮箱,在html中可以使用from的action属性来提供邮件发送功能,例如<from action=mailto:ahu831007@gmail.com></from>这样来完成整个表单的内容发送,但是在中国,这种方法因该在很大程度上是不可行的,因为当你点击submit按钮的时候,这样整个表单内容会调用您客户端的邮件发送软件,在国内用windows操作系统的同志,可能会弹出outlook客户端软件来,但是客户端软件是要配置,一般电脑使用的人都不会配置客户端软件,现在用的最多的邮件客户端软件应该是foxmail了,但是所有客户端软件配置虽然不是很复杂,但是国内很少人用邮件客户端软件,大部分人还是用ie浏览器来打开邮箱的,这样的话,应该来讲用这种办法实现的邮件发送事实上没起到作用。

    在我们现在的网站建设工作中,我们使用了如在asp状态下的jmail组件,应该来讲好的服务器都安装了jmail组件,但是但我们转到asp.net网站开发的时候,framework已经提供了SmtpClient类来完成邮件的发送,此类位于using System.Net.Mail;命名空间中,昨天在给客户做网站的过程中,发现使用这个类一直都没有发送成功,知道测试sina网提供的邮箱服务时才测试成功,下面是本人写的方法:

        /// <summary>
        /// 邮件发送
        /// </summary>
        /// <param name="subject">标题</param>
        /// <param name="body">内容</param>
        /// <param name="address">接收邮件的地址</param>
        /// <returns></returns>
        public static bool mail(string subject, string body, ArrayList address)
        {
            MailMessage message = new MailMessage();
            message.From = new MailAddress("ahu831007@sina.com");
            for (int i = 0; i < address.Count; i++)
            {
                message.To.Add(address[i].ToString());
            }
            message.BodyEncoding = System.Text.Encoding.UTF8;
            message.Subject = subject;
            message.Body = body;


            SmtpClient smtp = new SmtpClient("smtp.sina.com");
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtp.Credentials = new NetworkCredential("ahu831007@sina.com", "123456");
            try
            {
                smtp.Send(message);
                return true;
            }
            catch
            {
                return false;
            }

        }

(注:程序中的密码是错误的,因为本人还在使用这个邮箱,本程序中使用了ArrayList,所以到引入System.Collections;命名空间)

    后来去找为什么不能实现的原因,gmail邮箱不能实现是应为gmail邮箱使用smtp的端口不是25,如果要使用gmail的邮箱还要在代码中加上smtp端口的设置,smtp.Port=465

    Sohu的邮箱在配置文件中根本就找到到pop,smtp服务的启动,可能根本就不支持

    163邮箱听说现在的邮箱都不支持了,只有很老的邮箱才支持

    qq邮箱虽然说支持pop和smtp但是参看cnblog的文章中有说它的数据处理办法不一样,但是用户验证总是错误,所以qq的也用不起来,

    如果大家想用SmtpClient来发送邮件的话,那就是用sina的邮箱吧,反正我是一次成功了!

评论
发表评论
评论内容:
昵称:
邮箱:
嘉兴网络公司 嘉兴网站建设 嘉兴网站制作 嘉兴建网站 嘉兴做网站 嘉兴网页制作 PE给水管 HDPE中空壁缠绕管 ABS管生产厂家
服务热线: 0573-82102225 15858312461 QQ: 56373131 E-mail: sales@jiaxingweb.com 地址: 嘉兴市南湖区富润路101号320室 浙ICP备09050985号
嘉兴网站建设-嘉兴网站制作-嘉兴网站优化-龙媒网络@嘉兴网络公司 www.jiaxingweb.com