Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# how to send email?

Tags:

c#

.net

I am using C#.NET 4.0 and would like to send an email to an address with a subject and a body, the body will contain some information from a few text-boxes in my application.

I have little to no experience with sending emails in C#, so any help here would be appreciated. All I know is that you have to use the System.Net.Mail namespace. I tried this code but it gave an "Failure sending Mail" exception.

        new SmtpClient("smtp.server.com", 25).Send("[email protected]",
                                       "[email protected]",
                                       "subject",
                                       "body");

What is wrong with the above code? Furthermore, is there any better way to send the email?

like image 575
rayanisran Avatar asked Nov 27 '22 12:11

rayanisran


2 Answers

Probably your authentication (credentials) or servername/port is not correct.

Try this:

        MailMessage mailMsg = new MailMessage();
        mailMsg.To.Add("[email protected]");
                    // From
        MailAddress mailAddress = new MailAddress("[email protected]");
        mailMsg.From = mailAddress;

        // Subject and Body
        mailMsg.Subject = "subject";
        mailMsg.Body = "body";

        // Init SmtpClient and send on port 587 in my case. (Usual=port25)
        SmtpClient smtpClient = new SmtpClient("mailserver", 587);
        System.Net.NetworkCredential credentials = 
           new System.Net.NetworkCredential("username", "password");
        smtpClient.Credentials = credentials;

        smtpClient.Send(mailMsg);
like image 146
Pleun Avatar answered Dec 19 '22 02:12

Pleun


you cannot leave this string:

smtp.server.com

you should have there the name of your smtp server, usually something like mail.yourcompanyname.com or smtp.yourcompanyname.com

like image 32
Davide Piras Avatar answered Dec 19 '22 02:12

Davide Piras