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);
}