Click here to Skip to main content
12,942,930 members (60,379 online)
Rate this:
 
Please Sign up or sign in to vote.
See more:
using System.Net;
using System.Net.Mail;
OpenFileDialog dlg = new OpenFileDialog();
 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            string filename = dlg.FileName;
 
            try
            {
                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
 
                mail.From = new MailAddress("me@mydomain.com");
                mail.To.Add("u@urdomain.com");
                mail.Subject = filename;
                mail.Body = "Report";
                Attachment attachment = new Attachment(filename);
                mail.Attachments.Add(attachment);
 
                SmtpServer.Port = 25;
                SmtpServer.Credentials = new System.Net.NetworkCredential("me", "password");
                SmtpServer.EnableSsl = true;
 
                SmtpServer.Send(mail);
            }




These codes are working perfectly for me however I can send only plain text as Email. How to send an Email with formatting features like bold italics color change etc as in Yahoo Mail. Also I need a RichTextBox code for includng all such buttons.

pls help.
Posted 3-Mar-12 22:29pm
Comments
Member 8968685 28-Nov-12 6:53am
   
this code is not working in my system.. i am getting some exception...
can anyone pls help me.. the exception i got is:
System.Net.Mail.SmtpException was unhandled
Message="Failure sending mail."
Source="System"
StackTrace:
at System.Net.Mail.SmtpClient.Send(MailMessage message)
at sendemail.Form1.button1_Click(Object sender, EventArgs e) in C:\Users\xrih\Documents\Visual Studio 2008\Projects\sendemail\sendemail\Form1.cs:line 65
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at sendemail.Program.Main() in C:\Users\xrih\Documents\Visual Studio 2008\Projects\sendemail\sendemail\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: System.Net.WebException
Message="Unable to connect to the remote server"
Source="System"
StackTrace:
at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout)
at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback)
at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port)
at System.Net.Mail.SmtpClient.Send(MailMessage message)
InnerException: System.Net.Sockets.SocketException
Message="No connection could be made because the target machine actively refused it 173.194.67.109:25"
Source="System"
ErrorCode=10061
NativeErrorCode=10061
StackTrace:
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
InnerException:
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

  Permalink  
Comments
SAKryukov 4-Mar-12 4:49am
   
I hope, too. My 5.
--SA
thatraja 4-Mar-12 5:20am
   
5!
Anuja Pawar Indore 5-Mar-12 1:07am
   
My 5
Suresh Chand Saini 21-Dec-12 5:11am
   
how to send mail code
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 2

Basically, you need multi-part e-mail; and one or more parts could be HTML. Or RTF, which I would not recommend. For the e-mail, the content type should be: Content-Type: multipart/alternative or multipart/mixed. For each part, the content type should be a valid MIME type, such as text/html.

Please see:
http://en.wikipedia.org/wiki/MIME[^],
http://en.wikipedia.org/wiki/HTML_email[^].

Sending e-mail in .NET:
http://msdn.microsoft.com/en-us/library/system.net.mail.mailmessage.aspx[^].

For more complex cases where one part can reference another part, such as image referenced in HTML, please see my recent answer:
Sending HTML attachment with images[^].

The source code in this article also shows how to compose multipart e-mail using C#.

Please also see this CodeProject article:
Sending an Email in C# with or without attachments: generic routine.[^].

—SA
  Permalink  
v4
Comments
thatraja 4-Mar-12 5:20am
   
5!
SAKryukov 4-Mar-12 5:25am
   
Thank you, Raja.
--SA
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 3

  Permalink  
Comments
Member 10665816 20-Mar-14 20:04pm
   
Finally someone knows how to do it! Thanks.
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 5

  Permalink  
Comments
CHill60 13-Nov-13 6:40am
   
off topic
Arif Ansari Code 13-Nov-13 6:44am
   
Ok Dear can you
Tell me what is requirment here
CHill60 13-Nov-13 8:27am
   
My apologies - when I followed the link the first time I got a completely different site... a fault at my end. I've undone my downvote (I think)
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 6

try
{

MailMessage Msg = new MailMessage();
Msg.From = new MailAddress(txtTo.Text);
Msg.To.Add("hussainahmedshamsi@hotmail.com");
Msg.Subject = txtSubject.Text;
Msg.Body = txtMessage.Text;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.Credentials = new System.Net.NetworkCredential("hshamsi.knysys@gmail.com", "Hussain_ahmed");
smtp.EnableSsl = true;
smtp.Send(Msg);

}

catch (Exception ex)
{
Console.WriteLine("{0} Exception caught.", ex);
}
}
  Permalink  
Comments
CHill(Hawkeye)60 10-May-14 12:50pm
   
You're more than two years late
Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 7

  Permalink  
Comments
CHill60 28-Jul-14 10:59am
   
You are also more than 2 years late
Rishabh Mayur 29-Jul-14 5:59am
   
ohhh... yes ..you are right i didnt see the date of the post .. i just randomly given the answere link ....

Probabily it can also help to the other peoples who search regarding this topic.. :)

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

    Print Answers RSS
Top Experts
Last 24hrsThis month
OriginalGriff 4,633
CHill60 2,880
Maciej Los 2,268
Jochen Arndt 1,900
ppolymorphe 1,755


Advertise | Privacy | Mobile
Web02 | 2.8.170518.1 | Last Updated 28 Jul 2014
Copyright © CodeProject, 1999-2017
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100