在使用smtpclient的时候要不要考虑设置代理啊?还是会自动按照ie配置发送吗?

解决方案 »

  1.   

    这样说吧,
    环境:ie需要配置http代理才能上网。firefox在配置了代理以后可以正常收发163邮件。
    现象:使用下面代码无法发出邮件,报错发送邮件失败
    请问如何解决?需要自己手工写一个可设置代理的smtpclient吗?如果不需要如何解决?代码如下:
            MailMessage m = new MailMessage();
                m.From = new MailAddress("[email protected]");
                
                m.To.Add("[email protected]");
                m.Subject = "test";
                m.Body = "test";
                SmtpClient sc = new SmtpClient();
                sc.Credentials = new System.Net.NetworkCredential("[email protected]", "*******");
                sc.Port = 25;
                sc.Host = "smtp.163.com";
                sc.EnableSsl = false;
                
                try
                {
                    sc.Send(m);
                }
                catch (System.Net.Mail.SmtpException ex)
                {
                    MessageBox.Show(ex.Message+ "发送邮件出错");
                }
      

  2.   

    smtp服务器启动/设置好了没有 
    局域网是否禁止了smtp出去
      

  3.   

    补充楼上:
    1、smtp服务器必然已经启动。
    2、局域网应该没有禁止smtp出去,因为:
    “firefox在配置了代理以后可以正常收发163邮件。”
      

  4.   


    想你的代理服务器的ip(如果包括端口,就包括端口)发送http命令就行了。没有任何“配置”问题。
      

  5.   

    发送http命令就行了  -->  发送命令就行了
      

  6.   


    有道理,直接向代理服务器发送http命令确实好像能够解决。但是smtpClient毕竟是c#给封装好的了,多方便啊。请问c#中有没有定义好的类?可以配置代理服务器,并且可以像smtpClient一样的发送邮件