J'utilise mimekit pour recevoir et envoyer du courrier pour mon projet. J'envoie des mails reçus avec quelques modifications (à & à partir de parties). Et maintenant j'ai besoin de modifier dans la section du corps. Je remplacerai un mot spécifique par des caractères asterix. Texte spécifique différent pour chaque courrier. Le courrier peut être n'importe quel format. Vous pouvez voir que j'ai trouvé ce que je veux mais je ne sais pas comment puis-je remplacer sans erreur?comment modifier le corps du message - Mimekit Message
Répondre
MimeMessage.Body
est une structure arborescente, comme MIME, vous devrez naviguer vers le MimePart
qui contient le contenu que vous souhaitez modifier.
Dans ce cas, puisque vous souhaitez modifier un texte/* MimePart
, il sera en fait une sous-classe de MimePart
appelé TextPart
qui est ce qui a la propriété .Text
(qui est accessible en écriture).
J'ai la documentation écrite sur la façon de traverser la structure MIME d'un message pour trouver la partie que vous cherchez ici: http://www.mimekit.org/docs/html/WorkingWithMessages.htm
Une solution très simple pourrait être:
var part = message.BodyParts.OfType<TextPart>().FirstOrDefault();
part.Text = part.Text.Replace ("x", "y");
Mais Gardez à l'esprit que cette logique suppose que la première partie de texte/* que vous trouvez est celle que vous recherchez.
Merci mais en première ligne: 'System.Collections.GenericIEnumerable
C'est une instruction LINQ. Vous devez ajouter 'using System.Linq;' à votre liste d'utilisations. – jstedfast
Ok, quand je vois mesaj.body dans l'écran de débogage, ça semble changé. Mais quand j'envoie le courrier, le récepteur prend la version inchangée. est-ce qu'il a besoin d'une reconstruction semblable ou quelque chose? –
Si la propriété Text est accessible en écriture, je suppose que la seule façon de le savoir est d'essayer de le modifier. – Alex
oui La propriété de texte semble accessible en écriture. Mais; MimeMessage mesaj; mesaj.body n'est pas une sorte de type de liste. Donc je ne peux pas accéder et modfiy mesaj.body [0] .Text. Je ne peux pas trouver le chemin de la propriété Text. –