등록한 사용자에게 확인 이메일을 보내고 있으며 사용자의 이메일 클라이언트에 HTML이 표시되지 않는 경우를 대비하여 HTML과 일반 텍스트 버전이 모두 있는지 확인하고 싶지만 어떻게해야합니까? 이 작업을 수행. 다음은 내 코드 중 일부입니다.SendGrid가 HTML 메시지를 일반 텍스트로 자동 변환합니까?
private async Task configSendGridasync(IdentityMessage message)
{
var myMessage = new SendGridMessage();
myMessage.AddTo(message.Destination);
myMessage.From = new System.Net.Mail.MailAddress(
"[email protected]", "Example");
myMessage.Subject = message.Subject;
myMessage.Text = message.Body;
myMessage.Html = message.Body;
var credentials = new NetworkCredential(
ConfigurationManager.AppSettings["MailAccount"],
ConfigurationManager.AppSettings["MailPassword"]
);
// Create a Web transport for sending email.
var transportWeb = new Web(credentials);
// Send the email.
if (transportWeb != null)
{
await transportWeb.DeliverAsync(myMessage);
}
else
{
Trace.TraceError("Failed to create Web transport.");
await Task.FromResult(0);
}
}
private async Task<string> SendEmailConfirmationTokenAsync(string userID, string subject)
{
string code = await UserManager.GenerateEmailConfirmationTokenAsync(userID);
var callbackUrl = Url.Action("ConfirmEmail", "Account",
new { userId = userID, code = code }, protocol: Request.Url.Scheme);
await UserManager.SendEmailAsync(userID, subject, "<p>Example confirmation message</p>");
return callbackUrl;
}
코드는 작동하지만 HTML 전자 메일을 보냅니다. 그러나 HTML을 표시하지 않는 전자 메일 클라이언트가있는 사용자는 어떻게됩니까? myMessage.Text = message.Body;
은 자동으로 "<p>Example confirmation message</p>"
을 가져와 일반 텍스트로 변환합니까? 그렇지 않으면 텍스트 버전에 사용되는 메시지를 어떻게 추가합니까?
편집 : 내가 사용하게 될 HTML은 일반적으로 비슷한 포맷됩니다 :
<p style="color:#333;">First paragraph</p>
<p style="color:#333;">Second paragraph <a href="https://www.somelink.com">Click here</a></p>
<p style="color:#333;"> Third <br> paragraph</p>
아니요 자동으로 변환하지 않습니다. 일반 텍스트를 제공해야합니다. – Stilgar