如何用unity3d实现发送带附件的邮件

本文介绍了如何在Unity3D中使用C#脚本发送带有附件的邮件,特别是通过捕获屏幕截图作为邮件附件。文章提到了通过Application.RegisterLogCallbackHandler监听错误日志,并探讨了两种发送错误日志的方式:直接用C#脚本发送和调用外部程序。还强调了Application.CaptureScreenshot函数在保存错误时刻屏幕截图中的作用。

以Gmail为例。
点击屏幕的Capture按钮得到当前屏幕截图,点击Send按钮将之前的截图作为附件发送邮件。

 

using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Mail;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;
 
public class TryDemo : MonoBehaviour {
 
    // Use this for initialization
    void Start () {
 
    }
     
    // Update is called once per frame
    void Update () {
     
    }
 
    void OnGUI() {
        if (GUI.Button(new Rect(0, 50, 100, 40), "Capture")) {
            Debug.Log("Capture Screenshot");
            Application.CaptureScreenshot("screen.png");
        }
        if (GUI.Button(new Rect(0, 0, 100, 40), "Send")) {
            SendEmail();
        }
    }
 
    private void SendEmail()
    {
        MailMessage mail = new MailMessage();
         
        mail.From = new MailAddress("youraddress@gmail.com");
        mail.To.Add("youraddress@qq.com");
        mail.Subject = "Test Mail";
        mail.Body = "This is for testing SMTP mail from GMAIL";
        mail.Attachments.Add(new Attachment("screen.png"));
         
        SmtpClient smtpServer = new SmtpClient("smtp.gmail.com");
        smtpServer.Port = 587;
        smtpServer.Credentials = new System.Net.NetworkCredential("youraddress@gmail.com", "yourpassword")as ICredentialsByHost;
        smtpServer.EnableSsl = true;
        ServicePointManager.ServerCertificateValidationCallback = 
            delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) 
        { return true; };
 
        smtpServer.Send(mail);
        Debug.Log("success");
    }
}

 

①Application.RegisterLogCallback(OnDebugCallBackHandler);可以给debug的打印加入回调函数,监听每次的打印,通过这个来判断是否有出错日志并作出反应
②基本的发送错误日志方法就是通过邮件发送,可以通过在unity中用c#脚本来发送邮件,具体方法在上文有提到;也可以通过Process.Start(“name.exe”)来调用外部程序发送日志邮件,具体操作可以百度c编程发送邮件,有很多例子。
③用c#脚本发送邮件日志更方便实现,c#提供了邮件发送功能的封装。另外还可以用Application.CaptureScreenshot(“filename”)来保存截图用于发送,提供错误时程序截图。

 

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值