1
我嘗試連接到一個測試Gmail帳戶。 我已經激活IMAP,停止了我的本地防火牆和防病毒。德爾福:連接IMAP到Gmail帳戶
我使用2個印組件:
IMAP:TIdIMAP4; ssl:TIdSSLIOHandlerSocketOpenSSL;
和我做
imap.Connect();
它連接但不久後斷開連接。
這裏的項目(德爾福XE3)與包括用戶和PSW到Gmail測試帳戶。
http://sqlmis.com/update/testimap.zip
我試着在TIdSSLIOHandlerSocketOpenSSL組件和TIdIMAP4但沒有成功不同的選項。
的憑據:
host=imap.gmail.com
[email protected]
和2 Indy組件是:
object ssl: TIdSSLIOHandlerSocketOpenSSL
OnStatus = sslStatus
Destination = 'imap.gmail.com:993'
Host = 'imap.gmail.com'
MaxLineAction = maException
Port = 993
DefaultPort = 0
SSLOptions.Method = sslvSSLv23
SSLOptions.SSLVersions = [sslvSSLv3, sslvTLSv1]
SSLOptions.Mode = sslmUnassigned
SSLOptions.VerifyMode = []
SSLOptions.VerifyDepth = 0
object imap: TIdIMAP4
OnStatus = imapStatus
IOHandler = ssl
OnDisconnected = imapDisconnected
OnConnected = imapConnected
Password = 'fudbafqpmjgikxct'
Port = 993
Username = '[email protected]'
Host = 'imap.gmail.com'
UseTLS = utUseImplicitTLS
SASLMechanisms = <>
MilliSecsToWaitToClearBuffer = 10
非常感謝任何幫助或建議
彼得
PS:這裏的imap和ssl組件的日誌
SSL Status = Resolving hostname imap.gmail.com.
SSL Status = Connecting to 64.233.167.108.
SSL Info = SSL status: "before/connect initialization"
SSL Info = SSL status: "before/connect initialization"
SSL Info = SSL status: "SSLv2/v3 write client hello A"
SSL Info = SSL status: "SSLv3 read server hello A"
SSL Info = SSL status: "SSLv3 read server certificate A"
SSL Info = SSL status: "SSLv3 read server key exchange A"
SSL Info = SSL status: "SSLv3 read server done A"
SSL Info = SSL status: "SSLv3 write client key exchange A"
SSL Info = SSL status: "SSLv3 write change cipher spec A"
SSL Info = SSL status: "SSLv3 write finished A"
SSL Info = SSL status: "SSLv3 flush data"
SSL Info = SSL status: "SSLv3 read server session ticket A"
SSL Info = SSL status: "SSLv3 read finished A"
SSL Info = SSL status: "SSL negotiation finished successfully"
SSL Info = SSL status: "SSL negotiation finished successfully"
SSL Info = Cipher: name = ECDHE-RSA-RC4-SHA; description = ECDHE-RSA-RC4-SHA SSLv3 Kx=ECDH Au=RSA Enc=RC4(128) Mac=SHA1
; bits = 128; version = TLSv1/SSLv3;
Status = Connected.
IMAP Connected SUCCESS
Status = Disconnecting.
IMAP DISCONNECTED
Status = Disconnected.
這裏完整的單位代碼:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdComponent, IdIOHandler,
IdException,
IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdIMAP4, IdMessage,
IdBaseComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
IdMessageClient, Vcl.StdCtrls;
type
TForm1 = class(TForm)
mess: TIdMessage;
imap: TIdIMAP4;
ssl: TIdSSLIOHandlerSocketOpenSSL;
mLog: TMemo;
Button1: TButton;
lbFolder: TListBox;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure imapConnected(Sender: TObject);
procedure imapDisconnected(Sender: TObject);
procedure imapStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
procedure sslStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
procedure sslStatusInfo(const AMsg: string);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
sender_mail, sender_name, uid : string;
begin
imap.Connect();
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
imap.ListMailBoxes(lbFolder.Items);
end;
procedure TForm1.imapConnected(Sender: TObject);
begin
mLog.Lines.Add('IMAP Connected SUCCESS');
end;
procedure TForm1.imapDisconnected(Sender: TObject);
begin
mLog.Lines.Add('IMAP DISCONNECTED');
end;
procedure TForm1.imapStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
mLog.Lines.Add('Status = ' + AStatusText);
end;
procedure TForm1.sslStatus(ASender: TObject; const AStatus: TIdStatus;
const AStatusText: string);
begin
mLog.Lines.Add('SSL Status = ' + AStatusText);
end;
procedure TForm1.sslStatusInfo(const AMsg: string);
begin
mLog.Lines.Add('SSL Info = ' + AMsg);
end;
end.
您的問題需要包括代碼*這裏*,而不是在一個非現場的位置(並且當然不是在我們必須先下載之前使用它的文件的現場)。 – 2015-02-09 13:54:14
對不起,插入zip文件上傳不工作。 – eustachio 2015-02-09 15:19:52
沒錯。我沒有說「包括你的zip文件的上傳」。我說「包含**代碼**」。這不僅僅是'imap.Connect()';有'TIdIMAP4'和'TIdSSLLIOHandlerSocketOpenSSL'組件設置的所有配置屬性。 – 2015-02-09 15:21:09