2017-04-11 21 views
1

私は多くのソースと質問を見てきましたが、私はまだ、団結を通じて電子メールを送信するこのコードは、アンドロイドビルドでは機能していないことは明らかではありません。それはWindowsのビルドでうまく動作しますが、アンドロイドで動作しません。誰かが私を助けることができる?ここにコードがあります -電子メールはユニティアンドロイドで送信していませんか?

using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.IO; 
using System.Net; 
using System.Net.Mail; 
using System.Net.Security; 
using System.Security.Cryptography.X509Certificates; 
using UnityEngine; 
public class EmailUnity 
{ 

public static string SenderEmail; 
public static string SenderPassword; 
public static string SmtpClient; 
public static int SmtpPort; 

public static void SendEmail(string to, string subject, string body, bool isHtml, string[] attachmentPaths, 
    Action<object, AsyncCompletedEventArgs> callback = null) 
{ 
    try 
    { 
     SmtpClient emailServer = new SmtpClient(SmtpClient, SmtpPort); 
     emailServer.EnableSsl = true; 
     emailServer.Credentials = (ICredentialsByHost) new NetworkCredential(SenderEmail, SenderPassword); 

     ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; 

     MailMessage message = new MailMessage(SenderEmail, to); 
     message.Subject = subject; 
     message.Body = body; 
     message.IsBodyHtml = isHtml; 

     foreach (string path in attachmentPaths) 
     { 
      if (!string.IsNullOrEmpty(path) && File.Exists(path)) 
      { 
       message.Attachments.Add(new Attachment(path)); 
      } 
     } 
     if (callback == null) 
     { 
      callback = SampleCallback; 
     } 
     emailServer.SendCompleted += new SendCompletedEventHandler(callback); 
     emailServer.SendAsync(message, ""); 

     Debug.Log("Email sending"); 
    } 
    catch (Exception ex) 
    { 
     Debug.Log("Error: " + ex.Message); 
     callback("", new AsyncCompletedEventArgs(ex, true, "Exception occured")); 
    } 
} 

private static void SampleCallback(object sender, AsyncCompletedEventArgs e) 
{ 
    if (e.Cancelled || e.Error != null) 
    { 
     Debug.Log("Error: " + e.Error.Message); 
    } 
    else 
    { 
     Debug.Log("Email sent"); 
    } 
} 
} 
+0

はあなたがアンドロイドで* doen't仕事とはどういう意味ですか必要* ?それを説明してください。 – zwcloud

+0

'SendEmail'メソッドを呼び出すコードを提供してください。 – Hristo

答えて

1

これは、がAndroidで動作しない場合に試してみるべきことです。

ゴーファイルへ - >ビルド設定... - >はAndroidのを選択します。ここで、プレーヤー設定をクリックします。 インターネットアクセス .On

オートからそれを変更を必要としています。

.Makeていることを確認してAPIの互換性レベルはサブセット.NET 2.0ない.NET 2.0に設定されています。

.Make ストリップレベル無効に設定されていることを確認してください。

.GO へPlayerの設定 - >アンドロイドから自動車をインターネットアクセスを変更から

+0

ありがとう。 .NETサブセットを.NETに変更するのを忘れました。電子メールは機能していますが、添付ファイル(画像)はメールに添付されていません。 – RingR89

+0

添付ファイルはまったく別の問題です。あなたは、添付ファイルが機能していないという新しい質問を作成する必要があります。アタッチメントのパスがどのように見えるのか、パスをどのように構築するのかを教えてください。 – Programmer

+1

返信いただきありがとうございます – RingR89

関連する問題