我的代码如下:  IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
  IdSSLIOHandlerSocketOpenSSL.DefaultPort := 0;
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmUnassigned;
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyDepth := 0;
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode := [];
  IdSSLIOHandlerSocketOpenSSL.Host := IdSMTP1.Host;
  IdSSLIOHandlerSocketOpenSSL.Port := IdSMTP1.Port;
  IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv1;
  IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
  IdSMTP1.UseTLS := utUseImplicitTLS; 然后我把libeay32.dll和ssleay32.dll这两个DLL都放到了我的应用程序的根目录下,为什么当我把IdSMTP1.Host设置为:smtp.gmail.com的时候,然后再发送邮件,总是报错:'Must issue a STARTTLS command first'。可是如果我把IdSMTP1.Host设置为163或者tom和sina的都没有任何问题,可以发送成功,请问各位大侠,对于GMail的邮件服务器,我应该怎么设置呢?先谢谢了哈!

解决方案 »

  1.   

    只需要设置一个属性即可
    IdSMTP1.UseTLS := utUseImplicitTLS; 
    不需要对IdSSLIOHandlerSocketOpenSSL做任何设置,你修改了IdSMTP1的属性,delphi会自动修改的。
    google的邮件服务器比较奇特,就是发送邮件后,邮件服务器会自动关闭此次的连接。
      

  2.   

    TO lzf1010(深宇):     我按照你说的做了,但是发送邮件的时候还是提示:'Must issue a STARTTLS command first';请问这是怎么回事呢?
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    idsmtp1.Connect;
    idsmtp1.Send(idmessage1);
    idsmtp1.Disconnect;
    end;dfm:object Form1: TForm1
      Left = 192
      Top = 114
      Width = 696
      Height = 480
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object Button1: TButton
        Left = 224
        Top = 40
        Width = 75
        Height = 25
        Caption = 'Button1'
        TabOrder = 0
        OnClick = Button1Click
      end
      object IdSMTP1: TIdSMTP
        IOHandler = IdSSLIOHandlerSocketOpenSSL1
        HeloName = 'csd'
        Host = 'smtp.gmail.com'
        Password = 'mypass'
        Port = 587
        SASLMechanisms = <>
        UseTLS = utUseRequireTLS
        Username = '[email protected]'
        Left = 80
        Top = 24
      end
      object IdMessage1: TIdMessage
        AttachmentEncoding = 'MIME'
        Body.Strings = (
          'ceva')
        BccList = <
          item
            Address = '[email protected]'
            Text = '[email protected]'
            Domain = 'yahoo.com'
            User = 'receiver'
          end>
        CCList = <
          item
            Address = '[email protected]'
            Text = '[email protected]'
            Domain = 'yahoo.com'
            User = 'receiver'
          end>
        Encoding = meDefault
        FromList = <
          item
            Address = '[email protected]'
            Text = '[email protected]'
            Domain = 'gmail.com'
            User = 'sender'
          end
          item
            Address = '[email protected]'
            Text = '[email protected]'
            Domain = 'gmail.com'
            User = 'sender'
          end>
        From.Address = '[email protected]'
        From.Text = '[email protected]'
        From.Domain = 'gmail.com'
        From.User = 'sender'
        ReceiptRecipient.Address = '[email protected]'
        ReceiptRecipient.Text = '[email protected]'
        ReceiptRecipient.Domain = 'yahoo.com'
        ReceiptRecipient.User = 'receiver'
        Recipients = <>
        ReplyTo = <>
        Sender.Address = '[email protected]'
        Sender.Text = '[email protected]'
        Sender.Domain = 'gmail.com'
        Sender.User = 'sender'
        ConvertPreamble = True
        Left = 120
        Top = 24
      end
      object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
        Destination = 'smtp.gmail.com:587'
        Host = 'smtp.gmail.com'
        MaxLineAction = maException
        Port = 587
        DefaultPort = 0
        SSLOptions.Method = sslvSSLv2
        SSLOptions.Mode = sslmUnassigned
        SSLOptions.VerifyMode = []
        SSLOptions.VerifyDepth = 0
        Left = 160
        Top = 24
      end
    end
      

  4.   

    The POP3/SMTP settings are:
    Incoming Mail (POP3) Server – requires SSL: pop.gmail.com, Use SSL: Yes, Port: 995  
    Outgoing Mail (SMTP) Server – requires TLS: smtp.gmail.com (use authentication), Use Authentication: Yes, Use STARTTLS: Yes (some clients call this SSL), Port: 465 or 587  
    Account Name:  your Gmail username (including '@gmail.com')  
    Email Address:  your full Gmail email address ([email protected])  
    Password:  your Gmail password