在 Unity WebGL 构建中获取 "system.net.sockets.socketexception no such host is known"

Getting "system.net.sockets.socketexception no such host is known" in Unity WebGL build

您好,感谢您抽出宝贵时间来帮助我解决问题。

我一直在 Unity 中做一个小的 webgl 事情,它会在用户完成一些事情后向他们发送一封电子邮件。我把它全部构建好并准备就绪,但是当我构建它并去测试它时,我在发送电子邮件时收到 socketexception 错误。

这是我用来发送电子邮件的代码

MailMessage mail = new MailMessage();
mail.From = new MailAddress(myEmail);
mail.To.Add(userEmail.text);
mail.Subject = "Thanks for viewing the Webcam page at WilliamLeonSmith.com";
mail.Body = "This is an automated email to deliver the attached images that were created at WilliamLeonSmith.com";

SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
smtpServer.Port = 587;
smtpServer.Credentials = new System.Net.NetworkCredential(myEmail, pass) as ICredentialsByHost;
smtpServer.EnableSsl = true;
ServicePointManager.ServerCertificateValidationCallback =
                delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
                { return true; };
smtpServer.Send(mail);

Due to security implications, JavaScript code does not have direct access to IP Sockets to implement network connectivity. As a result, the .NET networking classes (ie, everything in the System.Net namespace, particularly System.Net.Sockets) are non-functional in WebGL.

根据统一文档http://docs.unity3d.com/Manual/webgl-networking.html

因此出现错误。

不能WebGL[=61上使用Sockets或任何其他.Net网络class =].这是出于 安全性 的原因。虽然,您可以使用 Unity 的 WWW class.

您还有两个其他选项。

[简单]

1重写您在php问题中的代码。使用Unity WWW class发送message(toEmail, Subject, Body)到php 脚本。 php script 然后 发送 实际上 电子邮件 信息 它从 Unity App.

收到

如果不想学习php,可以编译 你问题中的代码作为 console 应用程序,然后将其用作 cgi 而不是 phpWWW class 可以 phpcgi 通信 ] 通过 GETPOST 请求的程序。

[困难]

2。您可以使用 UnitySocketIO 库实现 smtp 协议 或您自己的 MailMessage class。 https://github.com/NetEase/UnitySocketIO