登録したユーザーに確認メールを送信していますが、ユーザーのメールクライアントに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>"
となり、プレーンテキストに変換されますか?そうでない場合は、テキスト版に使用されるgetメッセージをどのように追加しますか?
編集:私が使用する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