日期:2014-05-18  浏览次数:20708 次

这个C#发邮件程序怎么到我这里就失灵了
C# code

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;             // 引入命名空间
using System.Net.Mail;
//参考http://www.zu14.cn/2008/11/05/net_mail/

namespace 发邮件到163
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                SmtpClient smtp = new SmtpClient();               //实例化一个SmtpClient
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //将smtp的出站方式设为 Network
                smtp.EnableSsl = false;                           //smtp服务器是否启用SSL加密
                smtp.Host = "smtp5.163.com";                      //指定smtp服务器地址163的升级了是smtp5若用smtp.163.com则错
                smtp.Port = 25;                                   //指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去

                MailMessage mm = new MailMessage();               //实例化一个邮件类
                mm.Priority = MailPriority.Normal;                //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可

                mm.From = new MailAddress("我的163邮箱@163.com", "密码", Encoding.GetEncoding(936));
                mm.ReplyTo = new MailAddress("我的163邮箱@163.com", "密码", Encoding.GetEncoding(936));

                mm.To.Add("接受者的163邮箱@163.com");
                //mm.To.Add(new MailAddress("接受者的邮箱", "接受者的邮箱名字", Encoding.GetEncoding(936))); //完整版,奇怪邮箱还有名字啊
                 mm.Subject = "C#写的发邮件程序发过来的";            //邮件标题
                mm.SubjectEncoding = Encoding.GetEncoding(936);
                mm.IsBodyHtml = true;                               //邮件正文是否是HTML格式
                mm.BodyEncoding = Encoding.GetEncoding(936);        //邮件正文的编码, 设置不正确, 接收者会收到乱码
                mm.Body = "<font color=\"red\">带html格式的邮件测试,呵呵</font>黑体字当然也要发点过去了,Hello sageking2!";//邮件正文
                //mm.Attachments.Add(new Attachment("Program.rar")); //附件!干脆把源代码发送过去
                smtp.Send(mm);                                      //发送邮件,如果不返回异常, 则大功告成了。

                Console.WriteLine("发送邮件,如果不返回异常, 则大功告成了。");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message); 
            }
            Console.ReadLine(); 
        }
    }
}


我试过很多种可能都失败了,大家帮帮我,是不是被当成垃圾邮件给屏蔽了啊?你们用这个代码试试看,参考http://www.zu14.cn/2008/11/05/net_mail/


------解决方案--------------------
我们当时用.net的邮件类库测过,很多邮箱都布能正常收发的,有些邮箱有时候可以有时候不可以

而且,如果你网络有代理,则不能发送

你试着吧send方法改成异步的send,这样更容易捕获异常
------解决方案--------------------
建议你用其他的邮箱或者是163的老邮箱,现在很多邮箱都不行~
------解决方案--------------------
你的程序报什么错误啊!就像2 楼所说的情况是有可能发生的啊
------解决方案--------------------
163要早几年申请的 啊 你如果用Gmail发的话 要加SSL验证啊
------解决方案--------------------
用自己的企业邮箱。最近申请的163 ,126都不行了。