System.Net.Mail      
          SmtpClient newclient = new SmtpClient("ddd.aaa.com");
               
                newclient.UseDefaultCredentials = false;
                newclient.Credentials = new System.Net.NetworkCredential("[email protected]", "111");
                newclient.DeliveryMethod = SmtpDeliveryMethod.Network;
                newclient.Send(msgMail);
因为我现在的from邮箱地址跟host是在同一个网络中。这样可以发信成功的。
但是我如果把host改成外网的邮件服务器
               SmtpClient newclient = new SmtpClient("ccc.bbb.com");
                newclient.UseDefaultCredentials = false;
                newclient.Credentials = new System.Net.NetworkCredential("[email protected]", "111");
                newclient.DeliveryMethod = SmtpDeliveryMethod.Network;
                newclient.Send(msgMail);
这样的话就发送不成功,说指令不认可。验证不成功
但是外网的邮件服务器的情况下using System.Web.Mail;这个就可以成功
 System.Web.Mail.MailMessage a = new System.Web.Mail.MailMessage();
        a.To = "[email protected]";
        a.From = "[email protected]";
        a.Subject = "test1";
        a.Body = "nihao!test!";
         a.Fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = "1";
        a.Fields["http://schemas.microsoft.com/cdo/configuration/sendusername"] = "[email protected]";
        a.Fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"] = "111";
        SmtpMail.SmtpServer = "ccc.bbb.com";
        SmtpMail.Send(a);
不知道怎么改能让用System.Net.Mail的时候,用外网的邮件服务器也能发送成功,哪位大虾能指导下。

解决方案 »

  1.   

    首先保证账户[email protected]可以登陆服务器ccc.bbb.com
    测试下不同smtp端口
      

  2.   

    [email protected]可以登陆服务器ccc.bbb.com
    可以登录的。我在outlook里面这样设置是可以接发邮件的。
      

  3.   

    内网和外网是一样的
    大部分是防火墙的问题
    你用 "Telnet 外网SMTP服务器 25" 命令看看能不能连上
    如果能连上说明程序有问题 如果连不上说明是防火墙或是对方的服务器有问题!
      

  4.   

    net类的Mail不能发, web类的mail可以发.
    没有道理啊