first I came across this article:
Dave On C# Programming tutorials
I got few errors and I start searching:
Unity 3 - Sending Email with C#
but I just cannot figure out how to solve this:
using UnityEngine;
using System.Net;
using System.Net.Mail;
using System.Collections;
public class SendEmail : MonoBehaviour {
void Start () {
Debug.Log("asdgf");
SendEmailF();
}
private void SendEmailF(){
// Create a System.Net.Mail.MailMessage object
MailMessage message = new MailMessage();
// Add a recipient
message.To.Add("Reciver.Email@gmail.com");
// Add a message subject
message.Subject = "Test Email Subject message";
// Add a message body
message.Body = "Test email Body message.";
// Create a System.Net.Mail.MailAddress object and
// set the sender email address and display name.
message.From = new MailAddress("Sender.Email@gmail.com", "John Smith");
// Create a System.Net.Mail.SmtpClient object
// and set the SMTP host and port number
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);
// If your server requires authentication add the below code
// =========================================================
// Enable Secure Socket Layer (SSL) for connection encryption
smtp.EnableSsl = true;
// Do not send the DefaultCredentials with requests
smtp.UseDefaultCredentials = false;
// Create a System.Net.NetworkCredential object and set
// the username and password required by your SMTP account
1.try
// smtp.Credentials = new NetworkCredential("Sender.Email@gmail.com", "Password");
// Assets/SendEmail.cs(43,22): error CS0266: Cannot implicitly convert type `System.Net.NetworkCredential' to `System.Net.ICredentialsByHost'. An explicit conversion exists (are you missing a cast?)
2.try
// smtp.Credentials = (ICredentialsByHost) new NetworkCredential("Sender.Email@gmail.com", "Password");
// wow no error but when I run the code:
// InvalidOperationException: SSL authentication error: RemoteCertificateNotAvailable, RemoteCertificateChainErrors
// System.Net.Mail.SmtpClient.<callback>m__4 (System.Object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, SslPolicyErrors sslPolicyErrors)
// System.Net.Security.SslStream+<BeginAuthenticateAsClient>c__AnonStorey7.<>m__A (System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Int32[] certErrors)
// Mono.Security.Protocol.Tls.SslClientStream.OnRemoteCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] errors)
// Mono.Security.Protocol.Tls.SslStreamBase.RaiseRemoteCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] errors)
// Mono.Security.Protocol.Tls.SslClientStream.RaiseServerCertificateValidation (System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Int32[] certificateErrors)
// Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates)
// Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1 ()
// Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process ()
// (wrapper remoting-invoke-with-check) Mono.Security.Protocol.Tls.Handshake.HandshakeMessage:Process ()
// Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage (Mono.Security.Protocol.Tls.TlsStream handMsg)
// Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback (IAsyncResult asyncResult)
// Rethrow as IOException: The authentication or decryption has failed.
// Mono.Security.Protocol.Tls.SslStreamBase.AsyncHandshakeCallback (IAsyncResult asyncResult)
// Rethrow as SmtpException: Message could not be sent.
// System.Net.Mail.SmtpClient.Send (System.Net.Mail.MailMessage message)
// SendEmail.SendEmailF () (at Assets/SendEmail.cs:59)
// SendEmail.Start () (at Assets/SendEmail.cs:9)
3.try
// NetworkCredential myCred = new NetworkCredential("Sender.Email@gmail.com","Password");
//
// CredentialCache myCache = new CredentialCache();
//
// myCache.Add(new Uri("www.contoso.com"), "Basic", myCred);
//
// WebRequest wr = WebRequest.Create("www.contoso.com");
// smtp.Credentials = myCache;
// Assets/SendEmail.cs(69,33): error CS0246: The type or namespace name `Uri' could not be found. Are you missing a using directive or an assembly reference?
// Assets/SendEmail.cs(69,25): error CS1502: The best overloaded method match for `System.Net.CredentialCache.Add(System.Uri, string, System.Net.NetworkCredential)' has some invalid arguments
// Assets/SendEmail.cs(69,25): error CS1503: Argument `#1' cannot convert `object' expression to type `System.Uri'
the rest of the code
// =========================================================
// Send the message
smtp.Send(message);
}
}
it’s all in 1 BIG script but I only uncomment a line after 1,2,3 try and get an error that’s commented
I made it like this to look a little bit more organized
and I’m using Unity 3D 4.1.2