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 jamesbisby · Apr 11, 2015 at 05:04 PM · emailattachment

Send email attachment c# - empty path

I'm trying to send a text file via an email in Unity. I'm using a GUI selection grid so the person can pick the file to send. I can send the email and attach the file but only if I write out the full path as a string (eg. "/C/Users/...") within the SendEmailF function (see below) rather than calling a variable. If I try to call a variable (which is a string variable with the path) for some reason it doesn't seem to pass on the information - I get ArgumentException: Path is Empty error when it attempts to attach the file. Any suggestions? Thanks!

 void OnGUI(){
             // Make selection grid with a list of files
         selStrings = Directory.GetFiles(pathName, "*.txt");
         selGridInt = GUI.SelectionGrid (new Rect(200,50,400,100), selGridInt, selStrings,1)
 
         uploadFile = selStrings[selGridInt];     // this is the selected file and path to send
         }
     }
 
         public void SendEmailF(){
 
         MailMessage mail = new MailMessage ();    // create email info
 
         mail.From = new MailAddress ("myemailaddress");
         mail.To.Add ("recipientemailaddress");
         mail.Subject = "Test Email";
         mail.Body = "This is for testing";

              // This only works if I write out the full path instead of calling 'uploadFile'
         System.Net.Mail.Attachment attachment = new System.Net.Mail.Attachment (uploadFile);   
         mail.Attachments.Add (attachment);
  
         SmtpClient smtpServer = new SmtpClient ("smtp.gmail.com");
         smtpServer.Port = 587;
         smtpServer.Credentials = new System.Net.NetworkCredential ("myemailaddress", "password") as ICredentialsByHost;
         smtpServer.EnableSsl = true;
         ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) {
             return true;
         };
         smtpServer.Send (mail);
     }




Comment
Add comment · Show 2
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
avatar image Killhatch · Apr 11, 2015 at 07:16 PM 0
Share

It would help if we could see what the upload string variable is defined as.

avatar image jamesbisby · Apr 13, 2015 at 08:58 AM 0
Share

Sure, thanks. I'm just defining it as a String variable to start with:

 public string uploadFile;
 public string[] selStrings;

And then after OnGUI is run it shows the following in the inspector:

uploadFile = /Users/$$anonymous$$e/ProjectName/Assets/Data/FileName.txt

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by Bunny83 · Apr 13, 2015 at 02:53 PM

You just passed the filename to the Attachment constructor, but you have to use the full filename. Otherwise how should the Attachment class know what file you actually ment?

You can use Path.Combine to construct the full path name like this:

 void OnGUI()
 {
     // [ ... ]
     uploadFile = System.IO.Path.Combine(pathName, selStrings[selGridInt])
 }

edit
Just realised that Directory.GetFiles should already return the full path of the files. What does "pathName" contains? Is it the full path to a directory? Or is it a relative path? You need to use an absolute path.

Comment
Add comment · Show 1 · 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
avatar image jamesbisby · Apr 13, 2015 at 03:35 PM 0
Share

Thanks. pathName does contain the full path to the directory. I did also try your suggestion but got the same error.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

How to send an email with an attachment ios U3DXT 1 Answer

Send email with attachment 1 Answer

Add a byte[] as attachment in a mail 1 Answer

Email attachment on Android & iOS 5 Answers

How to attach a file to an email on android (using intent and C#)? 1 Answer


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