如何从统一C#

时间:2018-11-09 07:07:53

标签: c# unity3d gmail

我正在从我的应用发送邮件。当我尝试下面的代码时,它从unity Editor发送邮件。但是,当我在ipad上构建和测试我的应用程序时,邮件不是从我的应用程序发送的。

public void Start() {

    using (var mail = new MailMessage {
        From = new MailAddress(sender),
        Subject = "test subject",
        Body = "Hello there!"}) 
    {

        mail.To.Add(receiver);

        var smtpServer = new SmtpClient(smtpHost) {
            Port = 25,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            EnableSsl = true,
            UseDefaultCredentials = false,

            Credentials = (ICredentialsByHost) new NetworkCredential(sender, smtpPassword)
        };
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
        smtpServer.Send(mail);
    }
}

仅在使用编辑器时有效。不在我的应用程序(iPad)中。

我的代码有什么问题? 我还在我的Gmail帐户中启用了“允许减少应用程序的安全性”。

2 个答案:

答案 0 :(得分:0)

smtpServer.Send()方法更改为try / catch块,以便您可以看到旺旺错了:

public void Start() {

    using (var mail = new MailMessage {
        From = new MailAddress(sender),
        Subject = "test subject",
        Body = "Hello there!"}) 
    {

        mail.To.Add(receiver);

        var smtpServer = new SmtpClient(smtpHost) {
            Port = 25,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            EnableSsl = true,
            UseDefaultCredentials = false,

            Credentials = (ICredentialsByHost) new NetworkCredential(sender, smtpPassword)
        };
        ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
        try {
            smtpServer.Send(mail);
        }  
        catch (Exception ex) {
            Console.WriteLine("Exception while smtpServer.Send(mail): {0}", 
                      ex.ToString() );            
        }    
    }
}

构建。开始实时查看xCode中的日志以查看已记录的内容(see this answer)。运行您的应用程序,然后查看xCode中的日志。您很可能会自己理解问题。如果没有,请为我们发布日志。

答案 1 :(得分:0)

我已经找到了上述代码的解决方案。我们必须更改“构建设置”

转到文件->构建设置...->选择Android。现在,单击“播放器设置”。

1。在Internet访问上,将其从“自动”更改为“要求”。

2。确保将“ API兼容级别”设置为.NET 2.0而不是.NET 2.0子集。

3。确保将“剥离级别”设置为“禁用”。

4。转到播放器设置-> Android,然后将Internet访问从“自动”更改为“要求”

如果SmtpClient无法在ios上运行,可以尝试以下方法

创建一个link.xml文件并添加以下代码。...

并执行代码...它将从unity App发送邮件。...