在 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 而不是 php。 WWW
class 可以 与 php 或 cgi 通信 ] 通过 GET
或 POST
请求的程序。
[困难]
2。您可以使用 UnitySocketIO 库实现 smtp 协议 或您自己的 MailMessage
class。 https://github.com/NetEase/UnitySocketIO
您好,感谢您抽出宝贵时间来帮助我解决问题。
我一直在 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 而不是 php。 WWW
class 可以 与 php 或 cgi 通信 ] 通过 GET
或 POST
请求的程序。
[困难]
2。您可以使用 UnitySocketIO 库实现 smtp 协议 或您自己的 MailMessage
class。 https://github.com/NetEase/UnitySocketIO