if (getMailServer() == true)
            {
                WriteStream("DATA");
                WriteStream("Date:   " + DateTime.Now);//时间 
                WriteStream("From:   " + fromname + "<" + from + ">");//发件人   
                WriteStream("Subject:   " + subject);//主题   
                WriteStream("To:" + to);//收件人                   //邮件格式   
                WriteStream("Content-Type:   multipart/mixed;   boundary=\"unique-boundary-1\"");
                WriteStream("Reply-To:" + this.from);//回复地址   
                WriteStream("X-Priority:" + priority);//优先级  
                WriteStream("MIME-Version:1.0");//MIME版本                   //数据ID,随意   
                WriteStream("Message-Id:   " + DateTime.Now.ToFileTime() + "@security.com");
                WriteStream("Content-Transfer-Encoding:" + this.encode);//内容编码   
                WriteStream("X-Mailer:DS   Mail   Sender   V1.0");//邮件发送者   
                WriteStream("");
                WriteStream(AuthStream("This   is   a   multi-part   message   in   MIME   format."));
                WriteStream("");
                WriteStream("--unique-boundary-1");                //在此处定义第二个分隔符   
                WriteStream("Content-Type:   multipart/alternative;Boundary=\"unique-boundary-2\"");
                WriteStream("");                //文本信息   
                WriteStream("--unique-boundary-2");
                WriteStream("Content-Type:   text/plain;charset=" + this.charset);
                WriteStream("Content-Transfer-Encoding:" + this.encode);
                WriteStream("");
                WriteStream(body);
                WriteStream("");//一个部分写完之后就写如空信息,分段                   WriteStream("--unique-boundary-1--");
                if (!OperaStream(".", "250"))//最后写完了,输入“.”  
                {
                    this.Close();   //关闭连接   
                }
                MessageBox.Show("发送成功!");这个是我发邮件的格式,下面是发送给服务器
 private void WriteStream(string strCmd)
        {
            try
            {
                Stream TcpStream;//定义操作对象               
                strCmd = strCmd + "\r\n";   //加入换行符               
                TcpStream = this.GetStream();//获取数据流               
                //将命令行转化为byte[]               
                byte[] bWrite = Encoding.GetEncoding("GB2312").GetBytes(strCmd.ToCharArray());                //由于每次写入的数据大小是有限制的,那么我们将每次写入的数据长度定在75个字节,一旦命令长度超过了75,就分步写入。                   int start = 0;
                int length = bWrite.Length;
                int page = 0;
                int size = 75;
                int count = size;
                if (length > 75)
                {
                    //数据分页    
                    if ((length / size) * size < length)
                        page = length / size + 1;
                    else
                        page = length / size;                    for (int i = 0; i < page; i++)//根据页数循环写入   
                    {
                        start = i * size;
                        if (i == page - 1)
                            count = length - (i * size);
                        TcpStream.Write(bWrite, start, count);//将数据写入到服务器上                       }                }
                else
                    TcpStream.Write(bWrite, 0, bWrite.Length);
            }
            catch (Exception ee)
            {
                MessageBox.Show(ee.ToString());
            }
不知道为什么,里面不报错,但是邮件没有发送出去,求救各位高手了!!!
每分了,我去攒分,解决了绝对加分

解决方案 »

  1.   


    没有到catch,一直能运行到最后,但是邮件就是发不出去
      

  2.   


    这个看不出哪里错了。。又没走catch...
      

  3.   

    不行就换一个吧。。
       #region        
            public static void Sends(string email) 
            {
                string formto = "发件箱地址";
                string to = email;   //接收邮箱
                string content = "";
                string body = "";
                string name = "发件箱";
                string upass = "密码";
                string smtp = "smtp地址";
                SmtpClient _smtpClient = new SmtpClient();            
                _smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
                _smtpClient.Host = smtp; //指定SMTP服务器
                _smtpClient.Credentials = new System.Net.NetworkCredential(name, upass);//用户名和密码
                MailMessage _mailMessage = new MailMessage();
                //发件人,发件人名 
                _mailMessage.From = new MailAddress(formto, "别名");
                //收件人 
                _mailMessage.To.Add(to);
                _mailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("gb2312");
                _mailMessage.Subject = content;//主题            _mailMessage.Body = body;//内容
                _mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("gb2312");//正文编码
                _mailMessage.IsBodyHtml = true;//设置为HTML格式
                _mailMessage.Priority = MailPriority.High;//优先级   
                try
                {
                    _smtpClient.Send(_mailMessage);
                }
                catch (Exception)
                {
                                    
                }
                
            }
            #endregion
      

  4.   

    配置有问题吧.
    端口什么的,
    你使用outlook能发不?
      

  5.   

    你用的什么防火墙》?如果是 note32 需要设置下
      

  6.   

    你用的是framework1.0还是2.0以上啊。如果是1.0
    using System.Web.Mail
    如果是2.0以上
    using System.Net.Mail;我在vs2003升级到vs2005的时候遇到过这种情况,结果也不报错,最后查出是2.0其实不支持以前的System.Web.Mail的发信方式
      

  7.   

    换其他邮箱,JMAIL发送试试
      

  8.   

    我这是在wince上实现的,上面说的一些命名空间在wince上不识别,还是用5楼的先试试额!!
      

  9.   

    能不能给个wince发邮件的例子,或是用Sockets实现发邮件的例子啊,谢谢了!