L'ajout de css dans le code html qui vous sera envoyé un e-mail
J'ai créé une méthode qui vous permettra d'envoyer un email avec les informations pour les clients. Cependant, l'e-mail semble horrible, cus il n'y a pas de style. Je ne peux pas appliquer le style à l'e-mail pour une raison quelconque. J'ai essayé de chercher sur google, et il y en a beaucoup sur comment résoudre ce problème dans le code derrière, mais ce n'est pas mon problème. Je dois placer le code css dans le Html du corps, car il doit être affiché pour le client quand il ouvre l'e-mail.
Donc ma question est, comment puis-je ajouter des css pour le code html ci-dessus? J'ai essayé de faire:
<div style='...'></div>
et cela ne fonctionne pas
Toute aide sur la façon de résoudre ce problème est apprécié. Ci-dessous mon code. J'ai raccourcie, elle, pour des raisons de lisibilité.
string HtmlBody = @"<div style='float: right'>
<h3>Faktura</h3> <br />
Navn:<asp:Label ID='navn' runat='server' Text='%Navn%'/> <br />
Adresse:<asp:Label ID='adresse' runat='server' Text='%Adresse%'/> <br />
Postnr:<asp:Label ID='postnummer' runat='server' Text='%Postnr%'/> <br />
Land:<asp:Label ID='land' runat='server' Text='Danmark' /> <br />
Tlf: <asp:Label ID='tlfnummer' runat='server' Text='%Tlf%' /> <br />
Mail: <asp:Label ID='email' runat='server' Text='%Email%' /> <br />
<div style='float: right'>
<p>Dato</p>
</div>
<hr /> <br />
<table style='background-color: #c00764'>
<tr>
<td><b>Fakturanr:</b></td>
<td>%fakturanr%</td>
</tr>
<tr>
<td><b>Ordrenr:</b></td>
<td>%Ordrenr%</td>
</tr>
</table>
</div>";
Voici certaines de mes infos sur le mail de la partie
MailMessage mailMsg = new MailMessage();
mailMsg.IsBodyHtml = true;
mailMsg.Priority = MailPriority.Normal;
var smtpValues = GetSmtpValues();
var smtpCredentials = GetNetworkCredentials();
SmtpClient smptClient = new SmtpClient(smtpValues.Key, smtpValues.Value);
smptClient.EnableSsl = true;
smptClient.Credentials = new NetworkCredential(smtpCredentials.Key, smtpCredentials.Value);
//Send mail
smptClient.Send(mailMsg);
- Quelle est votre question / ce qui sont que vous essayez de faire et quel est le problème exactement?
- Vous avez déjà utiliser du css, qui devrait fonctionner correctement, assurez-vous juste que vous envoyez l'e-mail de soutien HTML.
- Ce client de messagerie le client à utiliser? Il y a beaucoup de différence entre les clients de messagerie dans combien CSS qu'ils soutiennent. Est le code HTML affiché normalement par ailleurs (en gras et en gros pour le h3, etc)?
- De style en ligne devrait fonctionner pour la plupart des styles de base. Êtes-vous en précisant
IsBodyHtml
aussi vrai pour votreSystem.Net.Mail.MailMessage
objet? - Par la manière, vous êtes sûr que des choses comme
<asp:Label ..
et%Ordrenr%
sont gérées correctement dans votre application? Je veux dire, ces deux formats sont pour les deux types d'analyseurs. - Je ne suis pas sûr à ce sujet. L' %...% signes ne vont pas être là, ils sont juste temporaire pour moi, alors que je sais que je devrais mettre les valeurs dans y. Mais je vais l'enlever, et voir si c'est la question
- Je ne sais pas ce client de messagerie de mes clients. Comment puis-je savoir cela? J'imagine qu'il peut utiliser n'importe quel client.
- J'ai essayé de supprimer les <asp:Label /> et le signe%. Toujours le même 🙁
- Je recommande d'utiliser ce post: stackoverflow.com/questions/9584170/... Cordialement, Dii~
Vous devez vous connecter pour publier un commentaire.
Voici quelques conseils:
Ne placez pas de CSS à l'intérieur des balises d'en-TÊTE de l'Email HTML.
Lorsque vous code d'une page web, traditionnellement, vous placez le code CSS entre les balises d'en-TÊTE, au-dessus de votre contenu. Mais quand les e-mails HTML sont affichés dans le navigateur, e-mail basé sur les applications (comme YahooMail!, Gmail, Hotmail, etc), ces applications de bande de la TÊTE et du CORPS des balises par défaut.
Nous vous recommandons de placer votre code CSS inline votre contenu (Remarque: le navigateur e-mail basé sur des applications aussi bande de votre balise BODY, donc toutes les couleurs d'arrière-plan ou de l'ORGANE paramètres doivent être manipulés avec un 100% de largeur de la TABLE de "wrapper" autour de votre e-mail. Ou nous vous suggérons de prendre un coup d'oeil à notre Automatique CSS-inliner fonctionnalité.).
Il devrait ressembler à quelque chose comme ceci:
Utilisation du CSS.
Référencement CSS fichiers sur votre serveur comme ce n'est pas très fiable:
Vous devez utiliser du CSS (comme indiqué ci-dessus).
Ajouter un espace en face de lignes CSS.
Nous avons remarqué que certains serveurs de messagerie (pas MailChimp, mais vos destinataires) comme pour en extraire toutes les lignes qui commencent par un point (.)
Cela peut ruiner votre CSS. Donc, la solution est d'ajouter un espace à l'avant de la CSS qui commence par un point, comme:
C'est, bien sûr, seulement si vous n'êtes pas en mesure de placer le code CSS en ligne pour votre contenu.
Je pense que tu oublies un en-tête dans votre code html.
J'ai formater mon mail comme ceci:
Et il fonctionne bien.
<head>
ou<html>
sont nécessaires, ou envie.