您好,感谢您抽出宝贵时间帮我解决问题。
我一直致力于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);
答案 0 :(得分:1)
由于安全隐患,JavaScript代码无法直接访问IP套接字以实现网络连接。因此,.NET网络类(即System.Net命名空间中的所有内容,特别是System.Net.Sockets)在WebGL中不起作用。
根据统一文件http://docs.unity3d.com/Manual/webgl-networking.html
因此错误。
答案 1 :(得分:1)
您无法使用套接字或 WebGL 上的任何其他.Net网络类。这是出于安全的原因。虽然,您可以使用Unity的WWW
类。
您还有两个其他选项。
[轻松强>
<强> 1 即可。 重新编写您在 php 中提问的代码。使用Unity WWW
类将消息( toEmail,Subject,Body )发送到 php 脚本。 php script
然后发送实际的电子邮件以及从收到的信息 > Unity App 。
如果您不想要学习 php ,您可以编译您的问题中的代码控制台 app然后将其用作 cgi 而不是 php 。 WWW
类可以通过GET
或POST
请求与 php 或 cgi 程序进行沟通。
[<强> HARD 强>
<强> 2 即可。您可以使用 UnitySocketIO 库实施 smtp协议或您自己的MailMessage
课程。 https://github.com/NetEase/UnitySocketIO