方法如下:
    public static bool SendMailMethod(string strFrom,string [] strto,string strSmtpServer,bool isSSL,string UserName,string Password,string strSubject, string strBody, string strFileName)
        {
            bool isSuc=false;
            //发送
            try
            {
                //生成一个 使用SMTP发送邮件的客户端对象
                SmtpClient client = new SmtpClient(strSmtpServer);
                //表示以当前登录用户的默认凭据进行身份验证
                client.UseDefaultCredentials = true;
                //包含用户名和密码
                client.Credentials = new System.Net.NetworkCredential(UserName, Password);
                //指定如何发送电子邮件。
                //Network                      电子邮件通过网络发送到 SMTP 服务器。  
                //PickupDirectoryFromIis       将电子邮件复制到挑选目录,然后通过本地 Internet 信息服务 (IIS) 传送。  
                //SpecifiedPickupDirectory     将电子邮件复制到 SmtpClient.PickupDirectoryLocation 属性指定的目录,然后由外部应用程序传送。                  client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                //建立邮件对象 
                MailMessage message = new MailMessage();
                message.From = new MailAddress(strFrom);
                foreach (string thisAdd in strto)
                {
                    message.To.Add(new MailAddress(thisAdd));
                }
                message.Subject = strSubject;
                message.Body = strBody;
                //定义邮件正文,主题的编码方式
                message.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8");
                message.SubjectEncoding = System.Text.Encoding.GetEncoding("UTF-8");                //获取或设置一个值,该值指示电子邮件正文是否为 HTML。 
                message.IsBodyHtml = true;                client.EnableSsl = isSSL;
                //指定邮件优先级                message.Priority = System.Net.Mail.MailPriority.Normal;                //添加附件
                //System.Web.Mail.MailAttachment mailAttachment=new System.Web.Mail.MailAttachment(@"f:/baihe.txt"); 
                if (strFileName != "" && strFileName != null)
                {
                    Attachment data = new Attachment(strFileName);
                    message.Attachments.Add(data);
                }
                client.Credentials = new System.Net.NetworkCredential(strFrom, Password);
                client.Send(message);
                isSuc = true;
                return isSuc;
            }
            catch (SmtpException ex)
            {
                isSuc = false;
                throw ex;
            }
          
        }
我的这个方法用163邮箱可以发送,用其他的不能发送,我开启了smtp模式
提示服务器不支持安全连接

解决方案 »

  1.   

    都说了不是每个smtp服务器都对外开发smtp服务的,你取得了其他smtp服务授权了吗????????不要以为163服务器可以用,
    就以为所有smtp服务器都可以免费给你随便用!!
      

  2.   

    client.Host = "smtp.163.com"; //可以配置成其他邮件服务器
    client.Credentials = new System.Net.NetworkCredential(UserName, Password);
    刚才我回答了跟这个一样的帖子是你的不啊?
    这个问题很正常    有的不提供免费的服务器
      

  3.   

    那为什么注册了个sina邮箱可以发给其他邮箱呢,我写程序就不能达到那种情况吗
      

  4.   

    client.Host = "smtp.163.com";  改成你新浪的 smtp.sina.com 去邮箱可以看到这个东西。 
      

  5.   

    "那为什么注册了个sina邮箱可以发给其他邮箱呢"那是因为你的邮件是在他的服务器上发送的,
    他用自己的服务器发送自己的邮件,
    当然可以了....."我写程序就不能达到那种情况吗"你写的程序是在你的服务器上运行,
    是借用他的stmp服务器,
    没有经过授权,
    不给你用,
    也很正常,
    有什么好疑问的????
      

  6.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Mail;namespace MailSender
    {
        public partial class Default : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {        }        protected void Button1_Click(object sender, EventArgs e)
            {
                MailMessage objMailMessage;
                MailAttachment objMailAttachment;            // 创建一个附件对象
                objMailAttachment = new MailAttachment("C:\\1.xml");//发送邮件的附件            // 创建邮件消息
                objMailMessage = new MailMessage();
                objMailMessage.From = "[email protected]";//源邮件地址
                objMailMessage.To = "********@qq.com";//目的邮件地址
                objMailMessage.Subject = "邮件发送标题:你好";//发送邮件的标题
                objMailMessage.Body = "邮件发送标内容:测试一下是否发送成功!";//发送邮件的内容
                objMailMessage.Attachments.Add(objMailAttachment);//将附件附加到邮件消息对象中            //接着利用sina的SMTP来发送邮件,需要使用Microsoft .NET Framework SDK v1.1和它以上的版本
                //基本权限
                objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");            //用户名
                objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mytest110");            //密码
                objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "******");            //如果没有上述三行代码,则出现如下错误提示:服务器拒绝了一个或多个收件人地址。服务器响应为:530 Authentication required            //SMTP地址
                SmtpMail.SmtpServer = "smtp.sina.com";            // 开始发送邮件
                // 在发送之前,去新浪邮箱里开启POP/SMTP设置    邮箱设置->账户->POP/SMTP设置->开启
                // 否则会报错误0x80040217. The server response was not available
                SmtpMail.Send(objMailMessage);
            }
        }
    }  
      

  7.   

    必须确保你所使用邮箱服务商提供smtp的服务,用gmail的吧。
    public void SendMailUseGmail()
            {
                System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
                msg.To.Add("[email protected]");
                //msg.To.Add("[email protected]");
                /**/
                /* 
                * msg.To.Add("[email protected]"); 
                * msg.To.Add("[email protected]"); 
                * msg.To.Add("[email protected]");可以发送给多人 
                */
                //   msg.CC.Add("[email protected]");
                /**/
                /* 
                 * msg.CC.Add("[email protected]"); 
                 * msg.CC.Add("[email protected]");可以抄送给多人 
                 */
                msg.From = new MailAddress("[email protected]", "Alarm", System.Text.Encoding.UTF8);
                msg.Subject = "这是测试邮件";//邮件标题 
                msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 
                msg.Body = "邮件内容";//邮件内容 
                msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 
                msg.IsBodyHtml = false;//是否是HTML邮件 
                msg.Priority = MailPriority.High;//邮件优先级
                SmtpClient client = new SmtpClient();
                client.Credentials = new System.Net.NetworkCredential("[email protected]", "111111");//上述写你的GMail邮箱和密码 
                client.Port = 587;//Gmail使用的端口 
                client.Host = "smtp.gmail.com";
                client.EnableSsl = true;//经过ssl加密 
                object userState = msg;
                try
                {
                    client.Send(msg);
                    MessageBox.Show("发送成功");
                    // client.SendAsync(msg, userState);
                    //简单一点儿可以client.Send(msg); 
                    
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    
                }
            }
      

  8.   

    子夜  :
                objMailMessage.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "mytest110");引用的是哪个命名空间啊我这里怎么点不出fields ,
    你这个只是针对sina吗
      

  9.   

    参考,前提是你能使用smtp服务器:
    http://www.cnblogs.com/insus/articles/1689279.html
      

  10.   

    insus :前提是你能使用smtp服务器
    这个能举个例子吗?
      

  11.   

    可以,而且,这也是你最好的解决办法,
    很多大点的企业,
    都是自己架设smtp服务器
      

  12.   

    设置smtp服务为   SmtpMail.SmtpServer = "smtp.sina.com";  “smtp.sina.com”随时更换,换成你发送邮件的smtp服务,而不是目标邮件的smtp服务