存储数据并通过电子邮件发送 - Unity WebGL

问题描述

我正在开发一款游戏,但遇到了一个障碍。游戏运行良好。每当玩家完成游戏时,我都希望将分数发送到我的电子邮件地址。

该游戏将在 itch.io 上托管。游戏持续 60 秒,然后出现一个游戏结束面板,向用户显示他的分数。那时我希望分数也通过电子邮件发送给我。 那可能吗? 如果没有,任何可以实现我的目标的替代方法(能够看到每个用户的分数)。

谢谢

解决方法

当然,您应该可以使用此代码。只需创建一个名为 SendEmail.cs 的文件并将其放在您的 /Scripts 文件夹中。这假设您是joker@gmail.com(密码= justjokering)并将电子邮件发送给自己。您可以从另一个文件中调用它,也许您可​​以使用以下方法计算分数变量:

SendEmail.SendResults("joker@gmail.com","emailBodyText","emailSubjectText");

这里是 SendEmail.cs 文件的内容:

using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
using UnityEngine;
using System.IO;
using UnityEngine.UI;
using System;
using System.Collections.Generic;

public class SendEmail : MonoBehaviour
{
    public string subject = "New Score Acquired";
    public string body = "putyourscoreASASTRINGhere";
    public string password = "";

    public void SendResults(string toAddress,string bodyText,string subjectText)
    {

        WriteDataFile(subjectText,bodyText);

        MailMessage mail = new MailMessage();

        mail.From = new MailAddress("joker@gmail.com");
        mail.To.Add(toAddress);
        mail.Subject = subjectText;
        mail.Body = bodyText;
        //var fileToAttach = GetComponent<realPicVerifApp>().logFilePathLocal;
        //mail.Attachments.Add(new Attachment(sshotlocation));
        SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
        smtpServer.Port = 587;
        smtpServer.Credentials = new System.Net.NetworkCredential("joker@gmail.com","justjokering") as ICredentialsByHost;
        smtpServer.EnableSsl = true;
        ServicePointManager.ServerCertificateValidationCallback =
            delegate (object s,X509Certificate certificate,X509Chain chain,SslPolicyErrors sslPolicyErrors)
            { return true; };
        smtpServer.Send(mail);
        Debug.Log("success");    
    }
}