Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by 777mike777 · Mar 11, 2015 at 07:37 AM · iosemailattachment

How to send an email with an attachment ios U3DXT

How do I send an email with an attachment using the U3dxt plugin. I have tried using the mail anything script that U3dxt provides but I have to call the function twice for the mail window to show and when I cancel or send, the window does not return to the app.

http://unity3d.tutsmobile.com/mail-anything-with-unity3d/

Thank you

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by MihajloNen · Mar 21, 2017 at 10:43 AM

Hi @777mike777 I found this solution:

1) Use the following code(CREDITS GO TO: Om Shridhar! Original Website: https://www.linkedin.com/pulse/code-send-e-mail-attachment-from-unity-c-using-smtp-om-shridhar):

using System;

using System.Net;

using System.Net.Mail;

using System.Collections;

using System.Net.Security;

using System.Security.Cryptography.X509Certificates;

using System.IO;

public class MailerScript : MonoBehaviour {

 string _sender = "";
 string _password = "";
 private string ScreenshotName = "/screenshot.jpg";
 private string screenShotPath;
 public MailerScript()
 {
     _sender = "the_mail_of_the_sender";
     _password = "sender_pw";
 }

 public void Takescreenshot()
 {
     Debug.Log (screenShotPath = Application.dataPath);
     screenShotPath = Application.persistentDataPath + ScreenshotName;
     Texture2D tex = new Texture2D (Screen.width, Screen.height);
     tex.ReadPixels (new Rect(0, 0, Screen.width, Screen.height), 0, 0);
     tex.Apply ();
     var bytes = tex.EncodeToJPG();
     Destroy (tex);
     System.IO.File.WriteAllBytes(screenShotPath, bytes);
     //screenShotPath = Application.persistentDataPath + "/" + ScreenshotName;
     //if(File.Exists(screenShotPath)) File.Delete(screenShotPath);
     Application.CaptureScreenshot(ScreenshotName);
     Debug.Log ("TAKESCREENSHOT FUNCTION EXECUTED");
 }

 public void SendEmail()
 {
     Debug.Log ("SEND EMAIL FUNCTION EXECUTED");
     //For File Attachment, more files can also be attached
     Attachment att = new Attachment(@screenShotPath);
     //tested only for files on local machine



     //Hardcoded recipient email and subject and body of the mail
     string recipient = "the_recipients_email";
     string subject = "Testmail from App";
     string message = "Test_Hello_World";

     SmtpClient client = new SmtpClient("smtp.gmail.com");
     //SMTP server can be changed for gmail, yahoomail, etc., just google it up


     client.Port = 25;
     client.DeliveryMethod = SmtpDeliveryMethod.Network;
     client.UseDefaultCredentials = false;
     System.Net.NetworkCredential credentials = new System.Net.NetworkCredential(_sender, _password);
     client.EnableSsl = true;
     client.Credentials = (System.Net.ICredentialsByHost)credentials;

     try
     {
         var mail = new MailMessage(_sender.Trim(), recipient.Trim());
         mail.Subject = subject;
         mail.Body = message;
         mail.Attachments.Add(att);
         Debug.Log("Attachment is now Online");
         ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
         {
             return true;
         };

         client.Send(mail);
         Debug.Log("Success");
     }
     catch (Exception ex)
     {
         Debug.Log(ex.Message);
         throw ex;
     }
 }

}

2) Edit the code so it matches your mail setup (sender, password, recipient, smtp client...)

3) Use Takescreenshot()-function to Take a screenshot and SendMail() to send the mail with the attachment.

4) It will now work in UNITY EDITOR BUT NOT ON IOS BUILD!!!!

5) Open your computers text editor application (I used Mac --> Text Edit) and paste the following code (CREDITS GO TO: Josh Peterson! Original thread: https://forum.unity3d.com/threads/ios-xcode-error-when-using-system-net-mail.334932/):

 <linker>
 <assembly fullname="System">
 <type fullname="System.Net.Configuration.MailSettingsSectionGroup" preserve="all"/>
 <type fullname="System.Net.Configuration.SmtpSection" preserve="all"/>
 <type fullname="System.Net.Configuration.SmtpNetworkElement" preserve="all"/>
 </assembly>
 </linker>

Name it "link" and safe it as a .xml-file (it will be: link.xml)

6) Add this link.xml to your assets folder in your Unity project and build it for iOS. --> the link.xml prevents the needed libraries to be stripped when builing to iOS plattform!

7) Now you should be able to send an email WITH an attachment to the recipients mail address :)

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Send HTML email to native email client 3 Answers

Social features for iOS? 2 Answers

Send email attachment c# - empty path 1 Answer

How can I get email id of the google user while using playgameservices sdk? 1 Answer

The name 'Joystick' does not denote a valid type ('not found') 2 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges