I have an ASP.NET application running on a Windows Server 2012 R2. I have configured Relay Server and it is working fine but my application can not send an email by using the following code. Error "Failure sending mail."
This code is working fine without a Windows Server:
protected void Unnamed_Click(object sender, EventArgs e)
{
try
{
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
GridView1.AllowPaging = true;
GridView1.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter.GetInstance(pdfDoc, memoryStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
byte[] bytes = memoryStream.ToArray();
memoryStream.Close();
MailMessage mm = new MailMessage("emailid", "emialid");
mm.Subject = "GridView Email";
mm.Body = "GridView:<hr />" + sw.ToString();
mm.Attachments.Add(new Attachment(new MemoryStream(bytes), "GridViewPDF.pdf"));
mm.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.office365.com";
smtp.EnableSsl = true;
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
NetworkCred.UserName = "emailid";
NetworkCred.Password = "password;
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
string script = "<script type=\"text/javascript\">alert('Email Send Successfully');</script>";
ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script);
}
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message.ToString());
}
}