Your code was partially correct but lot of mistakes.
Here's the correct and tested code.
HTML
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button Text="Upload" runat="server" OnClick="Upload" />
Namespaces
using System.IO;
using System.Net;
using System.Drawing;
using System.Net.Mail;
using System.Drawing.Imaging;
Code
protected void Upload(object sender, EventArgs e)
{
string fileName = Path.GetFileNameWithoutExtension(FileUpload1.PostedFile.FileName) + ".png";
using (Bitmap bmp = new Bitmap(FileUpload1.PostedFile.InputStream, false))
{
using (Graphics grp = Graphics.FromImage(bmp))
{
Brush brush = new SolidBrush(Color.Gray);
Point position = new Point((bmp.Width / 25), (bmp.Height / 25));
grp.DrawString("© ASPSnippets.com", new System.Drawing.Font("verdana", 30, FontStyle.Bold, GraphicsUnit.Pixel), brush, position);
using (MemoryStream memoryStream = new MemoryStream())
{
bmp.Save(memoryStream, ImageFormat.Png);
memoryStream.Position = 0;
using (MailMessage mm = new MailMessage())
{
mm.From = new MailAddress("reshma@gmail.com");
mm.To.Add("reshma@gmail.com");
mm.Subject = "Watermark Image";
mm.Body = "Watermark Image";
mm.Attachments.Add(new Attachment(memoryStream, fileName, "image/png"));
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
NetworkCredential NetworkCred = new NetworkCredential("reshma@gmail.com", "reshma");
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
}
}
}
}