可能是你发邮件的SMTP服务器写错了

解决方案 »

  1.   

    给你一份用jmail发邮件的源代码吧!
    using System;
    using System.Collections.Generic;
    using System.Text;
    using jmail;
    using System.Text.RegularExpressions;namespace SendEmail
    {    #region 发送电子邮件的封装类(对jmail进一步的封装)    /// <summary>
        /// 实现发送电子邮件的业务逻辑类
        /// </summary>
        /// <author>苏清选</author>
        /// <lastedit>2007-06-11</lastedit>
        public class TSnedEmailRule
        {        #region 实现发送电子邮件的方法        /// <summary>
            /// 实现发送电子邮件的方法
            /// </summary>
            /// <param name="ToEmail">发件者的邮箱</param>
            /// <param name="EmailUserName">发件者的用户名</param>
            /// <param name="EmailPassword">发件者的密码</param>
            /// <param name="FormEmail">收件者的邮箱</param>
            /// <param name="EmailSmtp">发件者邮箱的协议</param>
            /// <param name="EmailMsg">邮件的内容</param>
            /// <param name="EmailTitle">邮件标题</param>
            public static void SendEmail(string ToEmail,string EmailUserName,string EmailPassword,string FormEmail,string EmailSmtp,string EmailMsg,string EmailTitle)
            {
                
                #region 相对应的检查
                if(ToEmail.Trim().Length<=0)
                {
                    throw new Exception("发件者的邮箱不能为空");
                }            if(ToEmail.Trim().Length>0)
                {
                    ValidateEmail(ToEmail);
                }            if(FormEmail.Trim().Length<=0)
                {
                    throw new Exception("收件者的邮箱不能为空");
                }            if(FormEmail.Trim().Length>0)
                {
                    ValidateEmail(FormEmail);
                }            if(EmailUserName.Trim().Length<=0)
                {
                    throw new Exception("发件者邮箱的用户名不能为空");
                }            if(EmailPassword.Trim().Length<=0)
                {
                    throw new Exception("发件者邮箱的密码不能为空");
                }
                if(EmailSmtp.Trim().Length<=0)
                {
                    throw new Exception("发件者邮箱的协议不能为空");
                }
                if(EmailMsg.Trim().Length<=0)
                {
                    throw new Exception("邮件内容不能为空");
                }
                if(EmailTitle.Trim().Length<=0)
                {
                    throw new Exception("邮件标题不能为空");
                }            #endregion            #region 发送邮件相对应的代码            //创建一个邮件消息的对象
                Message Jmail = new Message();            //设置邮件的内容
                string body = EmailMsg.Trim();            //设置接收者的邮箱(FormEmail)
                string formemail = FormEmail.Trim();            //设置发件者的邮箱(ToEmail)
                string toemail = ToEmail.Trim();            //不将错误信息返回给操作系统
                Jmail.Silent = true;            //启动邮件日志功能
                Jmail.Logging = true;
                Jmail.Charset = "GB2312";//设置字符串的            //设置邮件的格式以文本或是Html的格式
                Jmail.ContentType = "text/html";            //添加一个收件人
                Jmail.AddRecipient(formemail, null, null);            //设置发件人的Email
                Jmail.From = toemail;            //设置发送者的用户名和密码
                Jmail.MailServerUserName = EmailUserName.Trim();
                Jmail.MailServerPassWord = EmailPassword.Trim();            //设置邮件的标题
                Jmail.Subject = EmailTitle.Trim();            //设置邮件的正文
                Jmail.Body = body.Trim();            try
                {
                    //发送邮件
                    Jmail.Send(EmailSmtp.Trim(), false);
                }
                catch (Exception ex)
                {
                    throw new Exception("邮件发送失败!");
                    //throw new Exception(ex.Message);
                }
                finally
                {
                    Jmail.Close();//关闭邮件
                    Jmail.Clear();//清空邮件
                }            #endregion        }        #endregion        #region 实现验证用户输入的Email格式是否正确的正则表达式
            /// <summary>
            /// 实现验证用户输入的Email格式是否正确的正则表达式
            /// </summary>
            /// <param name="email">传入一个电子邮箱的字符串</param>
            /// <returns>返回true或是false</returns>
            protected static bool ValidateEmail(string email) 
            {
                if (!Regex.IsMatch(email, @"^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"))
                {
                    throw new Exception("电子邮件的格式不对,电子邮件的格式如:'[email protected]'");
                }
                else 
                {
                    return true;
                }
            }        #endregion
        }    #endregion
    }
    还有,你得去网上下载一个jmail4.4版本的DLL,最后你得记得如果要本机调试得先安装jmail
    上面那份代码,我现在在用,绝对可以发
      

  2.   

    http://blog.csdn.net/downmoon/archive/2006/01/22/585951.aspx
      

  3.   

    关于jmail,我发布到目标计算机上时就发不出去,部署软件时是不是在目标计算机上也要先安装jmail?
      

  4.   

    to:yezby20070621()
    你所提出的问题,就是因为你在目标计算机上没有安装jmail的原因呀!
    也就是说你想要在那台计算机上用jmail发送邮件,就得在那台计算机上安装jmail。不好意思,由于今天一天都在忙公司网站的事件,到现在才回复你的问题。