내 앱에서 전자 메일을 보내려는 경우 디버깅 모드에서 제대로 작동하지만 릴리스하면이 오류가 발생합니다. 이미 예외를 잡기는하지만 이메일을 보내지 않아 실제로이 기능이 필요합니다. 이 문제는 어떻게 발생하며 배포 할 때 어떻게 작동 할 수 있습니까? 필자는 여러 대의 전화기에서이를 테스트했으며 모두이 예외를 사용하여 사용 된 전화기가 문제가되지 않습니다.C# Xamarin에서 System.Net.Sockets.SocketException을 해결하는 방법?
대응 코드 : "이름"과 "이메일"에서
this.Dismiss();
var message = new MimeMessage();
message.From.Add(new MailboxAddress("Name", "Email"));
message.To.Add(new MailboxAddress("Name", "Email"));
message.Subject = "Test"
message.Body = new TextPart("plain")
{
Text = @"Test"
};
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
try
{
client.ServerCertificateValidationCallback = (s, c, h, e) => true;
client.Connect("smtp.gmail.com", 25, false);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate("Account", "Password");
client.Send(message);
client.Disconnect(true);
Toast.MakeText(this.Activity, "Thanks for the email", Android.Widget.ToastLength.Short).Show();
}
catch (System.Net.Sockets.SocketException e)
{
Toast.MakeText(this.Activity, "Connection error, please try again later!", Android.Widget.ToastLength.Short).Show();
}
는 해당 정보하지만이 예제를 변경했습니다. client의 "Account"및 "Password"와 동일합니다. 보안을 위해 인증하십시오.
EDIT : 오류 코드는 11001이며 메시지는 호스트 "smtp.gmail.com"을 확인할 수 없습니다. 다른 포트에서도 마찬가지입니다. 이상한 점은 내 에뮬레이터에서 디버깅 할 때 작동하지만 배포 할 때 휴대폰에서는 작동하지 않는다는 것입니다.
SSL을 사용하십시오 (포트 587). Google과 관련하여 문제가 있다고 생각합니다. – john
앱에서 보낸 FROM 주소가 중요합니까? 에서, 당신의 dev에 ip A와 release는 ip B입니까? 그런 다음 Google의 안내를 살펴보십시오. 나는 당신이 더 강력한 암호가 필요하다고 생각합니다. – user1515791
예외는'Message' 속성을 가지고 있으며'SocketException'은'ErrorCode' 속성을 가지고 있습니다 - 질문에 그것들을 넣을 수 있습니까? –