[英]Delphi 5 Send Email With Indy
我正在嘗試在Delphi 5上使用Indy 10發送電子郵件,發生的是它不希望進行身份驗證,因為它向我顯示了“ Nooo”消息。 到目前為止,我在這里有這段代碼(這是我從另一個Stack Overflow問題中獲得的)。 我不確定為什么它對我不起作用,因為它顯然對其他人有用...也許我錯過了一些東西,我用我的2個實際郵件和密碼替換了senderemail和receiveemailemail。
編輯
因此,這就是我現在所在的位置,它彈出“必須首先發出STARTTLS命令”的信息。 但是現在有錯誤...我真的對此感到困惑...
編輯2
所以我設法使它起作用,這是最終結果。 隨意告訴我是否做得不好...在添加“ IdSMTP.Authenticate;”之前,我曾發生訪問沖突。 發送消息前先行!
procedure TForm1.Button3Click(Sender: TObject);
var
IdSMTP: TIdSMTP;
Email: TIdMessage;
SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
IdSMTP := TIdSMTP.Create(nil);
SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
Email := TIdMessage.Create(nil);
try
SSLHandler.MaxLineAction := maException;
SSLHandler.SSLOptions.Method := sslvSSLv23;
SSLHandler.SSLOptions.Mode := sslmUnassigned;
SSLHandler.SSLOptions.VerifyMode := [];
SSLHandler.SSLOptions.VerifyDepth := 0;
IdSMTP.IOHandler := SSLHandler;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Port := 587;
IdSMTP.Username := 'email@gmail.com';
IdSMTP.Password := 'password';
IdSMTP.UseTLS := utUseExplicitTLS;
Email.From.Address := 'email@gmail.com';
Email.Recipients.EmailAddresses := 'secondemail@gmail.com';
Email.Subject := 'Test subject';
Email.Body.Text := 'Test body';
IdSMTP.Connect;
if IdSMTP.Connected then
begin
IdSMTP.Authenticate;
IdSMTP.Send(Email);
IdSMTP.Disconnect;
end;
finally
Email.Free;
SSLHandler.Free;
IdSMTP.Free;
end;
end;
嘗試使用以下代碼:
IdSMTP := TIdSMTP.Create(nil);
try
IdSMTP.UseTLS := utNoTLSSupport;
IdSMTP.Host := 'smtp.gmail.com';
IdSMTP.Port := 25;
IdSMTP.AuthType := satDefault;
IdSMTP.Username := 'SenderEmail@gmail.com';
IdSMTP.Password := 'Password';
IdMessage := TIdMessage.Create(nil);
try
IdMessage.From.Name := 'My Name';
IdMessage.From.Address := 'SenderEmail@gmail.com';
IdMessage.Subject := 'E-mail subject';
IdMessage.Body.Add('E-mail body.');
IdMessage.Recipients.EMailAddresses := 'ReceiverEmail@gmail.com';
IdMessage.ReceiptRecipient.Name := 'Name';
if not IdSMTP.Connected then
IdSMTP.Connect;
IdSMTP.Send(IdMessage);
finally
IdMessage.Free;
IdSMTP.Disconnect;
end;
finally
IdSMTP.Free;
IdSSLIOHandlerSocketOpenSSL1.Free;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.