我正在从我的应用发送邮件。当我尝试下面的代码时,它从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帐户中启用了“允许减少应用程序的安全性”。
答案 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发送邮件。...