L'analyse courriel corps avec c#
J'ai une table de base de données de courrier électronique appelé email_archive. La table comprend un champ appelé corps et un autre appelé raw_headers. Je veux afficher le contenu de cette table à l'écran à l'aide de C# (dans une webpart SharePoint). J'ai essayé de trouver une bibliothèque qui peut analyser le corps de sorte que je peux retourner les pièces du message à la fenêtre. J'ai essayé une bibliothèque de Limilabs ainsi que téléchargé un couple de d'autres bibliothèques. Cependant, tous semblent avoir une adresse de courriel en format EML à la très minime.
La dernière tentative a été d'essayer d'utiliser MailUtilies.
MimeMessage mm = new MimeMessage(header + message);
Mais c'est un échec, car il semble que le format n'est pas en passant la MimeMessage vérification de l'intégrité.
Personne ne sait d'une façon d'analyser un e-mail, en pièces de composant à l'aide de la crue des en-têtes et le contenu du corps.
Les en-têtes de ressembler à ce
MIME-Version: 1.0
Received: from server.domain.com (10.20.205.104) by
mail.domain.com (xx.xx.xx.xx) with Microsoft SMTP Server id
8.1.436.0; Mon, 16 Sep 2013 14:33:54 -0700
Received: from server (localhost.localdomain [127.0.0.1]) by
server.domain.com (8.13.8/8.13.8) with ESMTP id r8GLX4vm007046 for
<myaddress@domain.com>; Mon, 16 Sep 2013 14:33:04 -0700
From: "[email protected]" <service@domain.com>
To: My Name <myaddress@domain.com>
Date: Mon, 16 Sep 2013 14:33:04 -0700
Subject: Some Topic
Thread-Topic: Some Topic
Thread-Index: Ac6zJHFgOvb7ZAdeTJC8DzqnAvdnOw==
Message-ID: <153372.442207427-sendEmail@gserver>
Reply-To: "[email protected]" <service@domain.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Exchange-Organization-AuthAs: Internal
X-MS-Exchange-Organization-AuthMechanism: 10
X-MS-Exchange-Organization-AuthSource: mail.domain.com
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
Content-Type: multipart/alternative;
boundary="_000_153372442207427sendEmailgroundwork_"
Et le message ressemble à quelque chose comme ceci
--_000_153372442207427sendEmailgroundwork_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Some message to dispaly
--_000_153372442207427sendEmailgroundwork_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<html><head><style type=3D'text/css'> p,h1 { font-family: arial; }
</style></head><body>
<p>Some message to display</p>
</body></html>
--_000_153372442207427sendEmailgroundwork_--
OriginalL'auteur Robbert | 2013-09-17
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la réponse en utilisant une bibliothèque à l'aide de OpenPop.Net.
Oui, j'ai été en mesure d'enregistrer les pièces jointes.
Merci, j'ai lu les documents sur OpenPop.net
J'ai obtenu que l'on peut utiliser le Système.Net.Mail aussi . Alors, qui est plus facile Openpop ou celui-ci???
Vous ne pouvez pas analyser message e-mail à l'aide de Système.Net.Mail. Également utiliser un codage ASCII peut conduire à la perte de données.
OriginalL'auteur Robbert
J'ai simplement utilisé MimeKit et il a travaillé beaucoup pour départager les pièces jointes. Il semble être complet et multi-plateforme.
OriginalL'auteur Kirk Liemohn
Vous devez combiner votre en-tête et le corps avec le
\r\n\r\n
délimiteur. Le code suivant montre que:Le code utilise Ultime bibliothèque Mail
OriginalL'auteur Alexey Semenyuk
Si vous avez les en-têtes et le corps, il est trivial de re-créer un ensemble de eml:
En-têtes et le corps en format MIME sont séparés par une ligne vide.
L'autre réponse utilise '\n' - ce qui est incorrect en tant que MIME exige "\r\n" séquence de fin de ligne.
Si votre chaîne d'en-tête se termine déjà avec une nouvelle ligne, il vous suffit d'ajouter une nouvelle ligne ("\r\n").
OriginalL'auteur Pawel Lesnikowski