J'ai essayé d'obtenir un code HTML et de traduire le code du rasoir dans une chaîne pour envoyer et envoyer un courriel à plusieurs utilisateurs. Les e-mails sont planifiés par Quartz
et envoyés aux utilisateurs. Le courrier génère un lien via @Url.Action
. Je remarque que je n'ai pas un Controller
ni HttpContext
à ce stade sur ma demande. J'ai essayé un moyen de traduire le code razor
(RazorEngine
et MvcMailer
) à une chaîne et l'envoi dans l'e-mail, mais sans utilisation parce que je ne peux pas traduire le @Url.Action
et ne peut pas trouver un paquet de travail MvcMailer
pour Visual Studio 2017rasoir html à la chaîne en utilisant Quartz
Existe-t-il un moyen de faire cela?
Voici le modèle de l'Email:
Hi @ViewBag.RecipientName,
Client that buy this item is @Model.ClientName
<p> <a href='@Url.Action("Index", "Item", new { ItemId = Model.ItemId}, Request.Url.Scheme)'>Click here to check the Item</a> </p>
@ViewBag.RecipientEmailAddress
Voici le générateur email
public MailMessage GetMessage(EmailModel notification)
{
string BodyTemplate = ReplaceEmailBody(notification);
return new MailMessage
{
To = { "[email protected]" },
Subject = DateTime.Now.ToString(),
IsBodyHtml = true,
Body = BodyTemplate
};
}
Voici ma tentative de déchets pour remplacer le rasoir:
private string ReplaceEmailBody(EmailModel notification)
{
string notificationBody = "";
notificationBody = Templates.Resources.MailTemplate;
notificationBody = notificationBody.Replace("@ViewBag.RecipientName", notification.RecipientName);
notificationBody = notificationBody.Replace("@ViewBag.RecipientEmailAddress", notification.RecipientEmailAddress);
notificationBody = notificationBody.Replace("@Model.CLIENT_NAME", notification.ClientName);
//Need to replace the Url.Action
}
Tout cela le code est en cours d'exécution dans un travail d'exécution de Quartz
J'utilise Visual Studio 2017
Vous pouvez fournir l'url (action du contrôleur mvc) à votre service de quartz qui sera appelé pour générer un courrier électronique rasoir (et éventuellement l'envoyer). –
@StanislavNedeljkovic Et comment puis-je faire cela? – Ragmar
Si l'URL est statique, placez-la dans le fichier de configuration, si elle est dynamique, envoyez-la en tant que paramètre de travail. –