在過去的 3 天里,我一直在努力解決這個錯誤,但找不到修復它的方法。
First chance exception at $779ACC12. Exception class EIdSMTPReplyError with message
'Username and Password not accepted.
在此問題之前,我遇到了無法加載的 SSL 庫問題,但當我獲得正確的 .dll 檔案時已修復它。現在我堅持這一點。
我使用的代碼如下。
var
FormMain: TFormMain;
mail_username: String;
mail_password: String;
mail_to: String;
mail_subject: String;
mail_body: String;
implementation
{$R *.dfm}
procedure Gmail(UserName, Password, ToTarget, Subject, Body : String);
var
DATA : TIdMessage;
SMTP : TIdSMTP;
SSL : TIdSSLIOHandlerSocketOpenSSL;
begin
SMTP := TIdSMTP.Create(nil);
DAta := TIdMessage.Create(nil);
SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
SSL.SSLOptions.Method := sslvTLSv1;
SSL.SSLOptions.Mode := sslmUnassigned;
SSL.SSLOptions.VerifyMode := [];
SSL.SSLOptions.VerifyDepth := 0;
DATA.From.Address := UserName;
DATA.Recipients.EMailAddresses := ToTarget;
DATA.Subject := Subject;
DATA.Body.Text := Body;
SMTP.IOHandler := SSL;
SMTP.Host := 'smtp.gmail.com';
SMTP.Port := 587; // also used the other 2 ports and their respective UseTLS
SMTP.Username := UserName;
SMTP.Password := Password;
SMTP.UseTLS := utUseExplicitTLS;
SMTP.Connect;
SMTP.Send(DATA);
SMTP.Disconnect;
SMTP.Free;
DATA.Free;
SSL.Free;
end;
procedure TFormMain.Button1Click(Sender: TObject);
begin
mail_username := EditUserName.Text;
mail_password := EditPassword.Text;
mail_to := EditTo.Text;
mail_subject := EditSubject.Text;
mail_body := MemoBody.Text;
try
begin
Gmail(mail_username, mail_password, mail_to, mail_subject, mail_body);
end;
except
ShowMessage('Didn''''t send.');
end;
end;
我到處找,找不到這個問題的答案。我正在使用 Delphi 10.2 Tokyo。
uj5u.com熱心網友回復:
當我仍在尋找答案時,我發現人們一直在談論 Google 所做的新安全更改。最后,我啟用了兩步驗證并設定了應用程式專用密碼。當我使用應用程式密碼時,電子郵件順利通過。
這是我制作應用程式密碼的方式:
使用應用密碼登錄
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/509901.html
上一篇:第二次點擊時如何更改點擊功能
