近日一个程序需要用到自动发邮件功能。找出自己以前试验成功的例子(Delphi6 + TNMSmtp)试了不行,Socket10061错误。
用Delphi7+Indy也不行...在命令行提示符下,用

telnet smtp.163.com 25 回车
结果是:
正在连接到smtp.163.com...不能打开到主机的连接,在端口 25:连接失败怎么回事?
哪位能帮忙解决....只能用 163、sohu、sina、yahoo等邮箱...无能力自建服务器

解决方案 »

  1.   

    begin
      StatusMemo.Clear;  //setup SMTP
      SMTP.Host := 'smtp.163.com';
      SMTP.Port := 25;
      SMTP.Username:='[email protected]';
      SMTP.Password:='password';
      SMTP.AuthenticationType:=atLogin;
      //setup mail message
      MailMessage.From.Address := '[email protected]';
      MailMessage.Recipients.EMailAddresses := '[email protected]';  MailMessage.Subject := 'subject';
      MailMessage.Body.Text := 'Body';  if FileExists(Attachment) then //Attachment 附件
        TIdAttachment.Create(MailMessage.MessageParts, ledAttachment.Text);  //send mail
      try
        try
          SMTP.Connect(1000);
          smtp.Authenticate;
          SMTP.Send(MailMessage);
        except on E:Exception do
          StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
        end;
      finally
        if SMTP.Connected then SMTP.Disconnect;
      end;end;试过了,可以发送邮件
      

  2.   

    感谢月亮帮忙测试。使我知道程序是没有错误的已经确认程序是没有错误的。
    也排除了路由器、宽带猫之外的网络因素。
    是我操作系统配置的原因。
    防火墙已关闭。
    系统是WindowsXP Home Edition SP2如果可能,想知道问题的根源或解决的方向。
      

  3.   

    telnet smtp.163.com 25
    220 163.com Anti-spam GT for Coremail System (163com[20081010])
    欢迎使用 Microsoft Telnet ClientEscape 字符是 'CTRL+]'
    Microsoft Telnet> qC:\Documents and Settings\Administrator>
    基本上我怀疑你的25端口出口被封了嘛
      

  4.   

    我是可以直接TELNET25端口的
    只要TELNET不上就说明目标端口没有可以直接到达的路径
    所以再做任何事情都是徒劳的,抛出错误给你是正常滴
      

  5.   

    to gyk120:果然是杀毒软件的原因。感谢!感谢各位!
      

  6.   


    你用的不是TNMSmtp控件吧?