私のアプリでは電子メールを送信したいが、それはデバッグモードでうまく動作するが、リリースするとこのエラーが出る。私はすでに例外をキャッチしていますが、それは電子メールを送信しないため、実際にはこの機能が必要です。これはどのようにして発生し、どのように展開できたら解決できるのでしょうか?私は複数の携帯電話でそれをテストしました、そして、彼らはすべて、この例外を出しましたので、使用された電話は問題ではありません。コード対応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.Authenticateの "Account"および "Password"と同じです。
EDIT:エラーコードは11001で、メッセージはホスト「smtp.gmail.com」を解決できませんでした。これは他のポートでも発生します。私が奇妙なことは、私のエミュレータでデバッグするときに動作するが、展開時には携帯電話では動作しないということだ。
SSLを使用してください(ポート587)。Googleで問題が発生していると思われます。 – john
あなたがアプリのFROMを使用しているアドレスは重要ですか?あなたの開発者はip Aで、リリースはip Bですか?それからgoogleからの指示を見てください。私はあなたがより強力なパスワードを必要と信じています。 – user1515791
例外には 'Message'プロパティがあり、' SocketException'には 'ErrorCode'プロパティがあります。質問にそれらを含めることはできますか? –