MimeKit 및 MailKit을 사용하여받은 편지함에서 전자 메일을 가져 오려고합니다.
그러나 메일 서버 Imap에 대한 로그온이 작동하지 않습니다.
포트 993을 SSL로 사용하고 있습니다.
포트 143에서/LOGIN/FETCH를 텔넷으로 연결하려고 시도했지만 작동합니다.
포트 993에서/LOGIN/FETCH를 Openssl과 연결하려고 시도했지만 작동합니다.
Mailkit는 v.1.4.2.1Mailkit Imap에 인증 실패
KODE :
using (var client = new ImapClient(new ProtocolLogger("imap.log")))
{
try
{
client.Connect(server, this.port, true);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(user, password);
var inbox = client.Inbox;
inbox.Open(FolderAccess.ReadWrite);
if (inbox.Count > 0)
{
var range = Enumerable.Range(0, inbox.Count).ToArray();
inbox.AddFlags(range, MessageFlags.Deleted, false);
inbox.Expunge();
}
client.Disconnect(true);
}
catch (AuthenticationException e)
{
throw e;
}
}
IMAP.LOG :
Connected to imaps://xxxx.xxx.xx:993/
S: * OK The Microsoft Exchange IMAP4 service is ready.
C: A00000000 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=NTLM AUTH=GSSAPI UIDPLUS MOVE ID CHILDREN IDLE NAMESPACE LITERAL+
S: A00000000 OK CAPABILITY completed.
C: A00000001 AUTHENTICATE NTLM
S: +
C: TlRMTVNTUAABAAAABwIIAAAAAAAgAAAAAAAAACAAAAA=
S: +
TlRMTVNTUAACAAAABgAGADgAAAAFAokCETTDB74D2YsAAAAAAAAAAKIAogA+AAAABgLwIwAAAA9LAE0ARAACAAYASwBNAEQAAQAUAEsATQBEAEUAWABDADIAMAAwADYABAAaAGkAbgB0AGUAcgBuAC4AawBtAGQALgBkAGsAAwAwAEsATQBEAEUAWABDADIAMAAwADYALgBpAG4AdABlAHIAbgAuAGsAbQBkAC4AZABrAAUAGgBpAG4AdABlAHIAbgAuAGsAbQBkAC4AZABrAAcACAA8TRLTaRLSAQAAAAA=
C: TlRMTVNTUAADAAAAGAAYAFYAAAAYABgAbgAAAAAAAABIAAAADgAOAEgAAAAAAAAAVgAAAAAAAACGAAAAAYIIAgoAWikAAAAPaQBvAG0AdABlAHMAdAA6stwc8LXYfAAAAAAAAAAAAAAAAAAAAAC5L0RCGGq9hCGwriyfURwGscjNCDTBeSA=
S: A00000001 NO AUTHENTICATE failed.
C: A00000002 AUTHENTICATE PLAIN
S: +
C: XXXXXXXXXX
S: A00000002 NO AUTHENTICATE failed.
C: A00000003 LOGIN xxxxxxxxx xxxxxxxx
S: A00000003 NO Server Unavailable. 15
S: * BYE Connection closed. 14A
예외 :
있다AuthenticationException: “Authentication failed.”
at MailKit.Net.Imap.ImapClient.Authenticate(Encoding encoding, ICredentials credentials, CancellationToken cancellationToken)
at MailKit.MailService.Authenticate(String userName, String password, CancellationToken cancellationToken)
당신이 그것을위한 경우, 당신은이 있는지 확인 수 :
결과 코드는 다음과 같이한다 GitHub 소스에서 MailKit을 빌드하고 결과 dll을 테스트하여 해결됩니다. 할 수만 있다면이 문제를 해결하기 위해 이번 주말에 누 겟을 발표하고 싶습니다. 그러나 "NTLM은 수정되었습니다!"라고 말하고 싶지 않습니다. 그리고 나서 그것은 그렇지 않다는 것을 알게되었습니다 ... – jstedfast