Create the email body, applying the styles at the top of the email body.
emailBody.Append(AddStyles());
emailBody.Append(body);
Send the email setting the fAppendHtmlTag parameter to true.
SPUtility.SendEmail(web, true, false, recipient, subject, emailBody)
To fix the issue, I set the fAppendHtmlTag parameter to false, instead adding the HTML tags myself, as such:
var body = String.Format("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html><head><meta http-equiv=\"X-UA-Compatible\" content=\"IE=8\" /><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />{0}</head><body>{1}</body></html>", AddStyles(), emailBody);
Then send the email:
SPUtility.SendEmail(web, false, false, recipient, subject, body)
This worked nicely, and the CSS styles were now applied consistently throughout the body of the email.
but if you further find some issue you can below method for sending mail
public static bool SendMailUitility(SPWeb web, string Subject, string Body, bool IsBodyHtml, string From, string To, string Cc, string Bcc)
{
bool mailSent = false;
try
{
SmtpClient smtpClient = new SmtpClient();
// smtpClient.Host = SPContext.Current.Site.WebApplication.
smtpClient.Host = web.Site.WebApplication.
OutboundMailServiceInstance.Server.Address;
MailMessage mailMessage = new MailMessage(From, To, Subject, Body);
if (!String.IsNullOrEmpty(Cc))
{
MailAddress CCAddress = new MailAddress(Cc);
mailMessage.CC.Add(CCAddress);
}
if (!String.IsNullOrEmpty(Bcc))
{
MailAddress BCCAddress = new MailAddress(Bcc);
mailMessage.Bcc.Add(BCCAddress);
}
mailMessage.IsBodyHtml = IsBodyHtml;
smtpClient.Send(mailMessage);
mailSent = true;
}
catch (Exception) { return mailSent; }
return mailSent;
}
}
}
or using gmail smtp
public void SendMailThroughGmail(string subject, string Body)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("abc100@gmail.com");
mail.To.Add("newemail@7p.com");
mail.IsBodyHtml = true;
mail.Subject = subject;
mail.Body = Body;
//Attachment attachment = new Attachment(filename);
// mail.Attachments.Add(attachment);
SmtpServer.Port = 25;
SmtpServer.Credentials = new System.Net.NetworkCredential("abc100@gmail.com", "******");
SmtpServer.EnableSsl = true;
SmtpServer.Send(mail);
}