0

以下のコードを実行すると、

未処理の例外: System.Net.Mail.SmtpException

このコードは、メールを送信するためのものです。Windows アプリケーションでは問題なく動作しますが、Mono for Android でランタイム エラーが発生します。Smeone は、System.net.mail は System.dll アセンブリの一部であると教えてくれましたが、MonoDroid アプリケーションでそれを使用する方法がわかりません。

追加の名前空間は次のとおりです。

 string username = "abc@xyz.com";
 string password = "1234567890";
 System.Net.NetworkCredential nc = new
 System.Net.NetworkCredential(username, password);
 MailMessage MailMessage = new MailMessage();
 MailMessage.To.Add("pqr@xyz.com");
 MailMessage.Subject = "here is the subject";
 MailMessage.From = new System.Net.Mail.MailAddress("abc@xyz.com");
 MailMessage.Body = "Application run time was ";
 System.Net.Mail.SmtpClient SmtpClient = new System.Net.Mail.SmtpClient("
 smtp.gmail.com");
 SmtpClient.UseDefaultCredentials = false;

 SmtpClient.EnableSsl = true;
 SmtpClient.Credentials = nc;
 SmtpClient.Port = 587;
 SmtpClient.Send(MailMessage);

これは Windows で問題なく動作します。Mono for Android 4.2.7、Visual Studio 2010 を実行しています。

4

1 に答える 1

2

テストとして以下の 1 つを試してから、状況に合わせて変更してください

using System;
using System.Net.Mail;
using System.Collections.Generic;
using System.Text;
using Gtk;
using GtkSharp;
using GLib;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

namespace KentSoft
    {
    class  printTest : Window
    {
    public  printTest() : base("Kent_Calisma")
    {
    try{
    MailMessage mail = new MailMessage();
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
    mail.From = new MailAddress("yourmailadress@gmail.com");
    mail.To.Add("destinationmailadress@gmail.com");
    mail.Subject = "TEST";
    mail.Body = "This is for testing SMTP mail from GMAIL";
    SmtpServer.Port = 587;

    SmtpServer.Credentials = new System.Net.NetworkCredential("gmailusername without @gmail.com", "gmailpassword");

    SmtpServer.EnableSsl = true;
    ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

    SmtpServer.Send(mail);

}

catch(Exception e){
    Console.WriteLine("Ouch!"+e.ToString());
  }
}

public static void Main()
    {
   Application.Init();
   new printTest();
   Application.Run();
          }
        }
      }

元の投稿から詳細を取得できます

于 2012-12-01T07:37:53.497 に答える