troubleshooting Question

Replacing SMTP in my page

Avatar of SmashAndGrab
SmashAndGrab asked on
ASP.NET.NET Programming
12 Comments1 Solution179 ViewsLast Modified:
Hi,

I have an simple MVC app that is currently sending email using SMTP.

I have now migrated the app to Azure and the SMTP no longer works.  

I have to use SendGrid now but I am not sure how I need to change the code in order to use the new SendGrid method.  I don't want to have to re-write my entire current email page if its unessarsary.

Here is the guide I'm using:

https://azure.microsoft.com/en-gb/documentation/articles/sendgrid-dotnet-how-to-send-email/

I completed up until the code part.

Here's my current email.cs page in its entirety..


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Web;
using System.Web.Configuration;
using SendGrid;



namespace smashandgrab
{
    public class EmailSender
    {
        string EmailSenderId = WebConfigurationManager.AppSettings["EmailSenderId"];
        string EmailSenderPassword = WebConfigurationManager.AppSettings["EmailSenderPassword"];
        string EmailSenderEnableSsl = WebConfigurationManager.AppSettings["EmailSenderEnableSsl"];
        string EmailSenderHost = WebConfigurationManager.AppSettings["EmailSenderHost"];
        string EmailSenderPort = WebConfigurationManager.AppSettings["EmailSenderPort"];
        string SenderTitle = WebConfigurationManager.AppSettings["SenderTitle"];
        string emailBody = "";






        public void SendEmail(DataResult obj)
        {
            string path = HttpContext.Current.Server.MapPath("/EmailFormat/EstimationEmail.html");

            if (File.Exists(path))
            {
                emailBody = File.ReadAllText(path);
                emailBody = emailBody.Replace("#FloorDepth#", obj.FloorDepth);
                emailBody = emailBody.Replace("#val220#", obj.val220);
                emailBody = emailBody.Replace("#val240#", obj.val240);
                emailBody = emailBody.Replace("#val300#", obj.val300);
                emailBody = emailBody.Replace("#Include1#", obj.Include1);
                emailBody = emailBody.Replace("#Include2#", obj.Include2);
                emailBody = emailBody.Replace("#Include3#", obj.Include3);
                emailBody = emailBody.Replace("#Include4#", obj.Include4);
                emailBody = emailBody.Replace("#Include5#", obj.Include5);
                emailBody = emailBody.Replace("#Include6#", obj.Include6);
                emailBody = emailBody.Replace("#Include7#", obj.Include7);
                emailBody = emailBody.Replace("#Include8#", obj.Include8);
                emailBody = emailBody.Replace("#Include9#", obj.Include9);
                emailBody = emailBody.Replace("#Include10#", obj.Include10);

            }

            using (MailMessage mail = new MailMessage())
            {
                mail.DeliveryNotificationOptions = System.Net.Mail.DeliveryNotificationOptions.OnSuccess;
                mail.From = new MailAddress(EmailSenderId);
                mail.To.Add(obj.Email);
                mail.Subject = "Quote";
                mail.Body = emailBody;
                mail.IsBodyHtml = true;  
                MailAddress mailaddress = new MailAddress(EmailSenderId, SenderTitle);
                mail.From = mailaddress;
                using (SmtpClient smtp = new SmtpClient(EmailSenderHost, Convert.ToInt32(EmailSenderPort)))
                {
                    smtp.Credentials = new NetworkCredential(EmailSenderId, EmailSenderPassword);
                    smtp.EnableSsl = Convert.ToBoolean(EmailSenderEnableSsl);
                    smtp.Send(mail);
                }
            }
        }
    }
}

Really hoping that someone can help with this :)
ASKER CERTIFIED SOLUTION
Gautham Janardhan

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 1 Answer and 12 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 1 Answer and 12 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros