Also for sending emails you may use xsl templates and bing xml data wıth template and create your html content
private string getEMailBodyAccountForgetPassword(User User)
{
string recieverName = User.Name;
string validationKey = User.ValidationKey;
string applicationDisplayName = applicationName;
string resetLink = $"{host}/account/resetpassword/start/{validationKey}";
string template = emailTemplateRootPath + "\\Account\\ForgetPassword\\ForgetPassword.xsl";
string xmlData = "<email>";
xmlData += $"<recievername>{recieverName}</recievername>";
xmlData += $"<link>{resetLink}</link>";
xmlData += $"<applicationdisplayname>{applicationDisplayName}</applicationdisplayname>";
xmlData += "</email>";
string body = Fabrikafa.Common.Functions.BindXslData(xmlData, template);
return body;
}
Here is the bind method:
public static string BindXslData(string XmlData, string XslFile)
{
string empty = string.Empty;
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(XmlData);
XslCompiledTransform xslCompiledTransform = new XslCompiledTransform();
xslCompiledTransform.Load(XslFile);
XPathNavigator input = xmlDocument.CreateNavigator();
StringBuilder stringBuilder = new StringBuilder();
XmlWriter xmlWriter = XmlWriter.Create(stringBuilder);
xslCompiledTransform.Transform(input, xmlWriter);
xmlWriter.Close();
return stringBuilder.ToString();
}
Here is the xsl template:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="@* | node() | /">
<html>
<head>
<link href="https://fonts.googleapis.com/css?family=PT+Sans" rel="stylesheet"/>
<style>
body {
font-family: 'PT Sans', sans-serif;
}
</style>
</head>
<body>
<div>
<img src="https://eu2.contabostorage.com/80ec950384cb46a8bf00f0e75660cedf:fabrikafa.content/Logo/apps/Yoneticim.EmailProviders-Logo-sm.png" /><br/>
<h2>
<xsl:value-of select="//email/applicationdisplayname"/> - Password Reset
</h2>
Dear <xsl:value-of select="//email/recievername"/>,<br/>
<br/>
To reset your password, please click link below.<br/>
<br/><br/>
<a href="https://{//email/link}" target="_blank">
https://<xsl:value-of select="//email/link"/>
</a>
<br/>
<br/>
<br/>
<b>
<xsl:value-of select="//email/applicationdisplayname"/> Team
</b>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>