Empfehlungen für eine .NET-Komponente für den Zugriff auf eine E-Mail-inbox [geschlossen]

StackOverflow https://stackoverflow.com/questions/18006

  •  09-06-2019
  •  | 
  •  

Frage

Ich wurde gebeten, zu schreiben, einen Windows-Dienst in C#, um in regelmäßigen Abständen die überwachung eines E-Mail-Posteingang und legen Sie die details der empfangenen Nachrichten in eine Datenbank-Tabelle.

Mein Instinkt ist, zu tun, dieses über POP3 und sicher genug, Googeln ".NET POP3-Komponente" produziert unzählige (ok, Netto 146 ' 000) - Ergebnisse.

Hat jemand etwas ähnliches getan, bevor, und können Sie empfehlen, eine anständige Komponente, die nicht die bank sprengen (ein paar hundert Dollar, maximal)?

Würde es irgendwelche Vorteile bei der Verwendung von IMAP statt POP3?

War es hilfreich?

Lösung

I recomment chilkat.Sie haben Recht stabile Komponenten, und Sie können Ihre E-Mail-Komponente für so Billig wie $99 für einen einzelnen Entwickler.Ich persönlich finde, mit dem ganzen Paket von Komponenten ist ein besseres Geschäft, da es nur $289, und kommt mit vielen nützlichen Komponenten.Ich bin nicht in Verbindung mit Ihnen in irgendeiner Weise, obwohl ich wahrscheinlich klingen wie ich bin.

Andere Tipps

Mit dem IMAP Protokoll können Sie zugreifen sub-Ordner, und set message status (gesehen/ungesehen), Sie können auch verwenden LEERLAUF Funktion für sofortige Benachrichtigungen.

Mail.dll gehören POP3, IMAP, SMTP Komponenten mit SSL - Unterstützung und leistungsfähige MIME-parser:

using(Imap imap = new Imap())
{
    imap.Connect("imap.server.com");    // or ConnectSSL for SSL
    imap.Login("user", "password");

    imap.SelectInbox();
    List<long> uids = imap.Search(Flag.Unseen);
    foreach (long uid in uids)
    {
        IMail mail = new MailBuilder()
            .CreateFromEml(imap.GetMessageByUID(uid));
        Console.WriteLine(mail.Subject);
    }
    imap.Close();
}

Bitte beachten Sie, dass dieses kommerzielle Produkt, das ich erstellt habe.

Sie können ihn hier herunterladen https://www.limilabs.com/mail

Ich benutze die Kostenlose und open-source-SharpMimeTools in meiner Anwendung, BugTracker.NET.Es wurde sehr zuverlässig:

http://anmar.eu.org/projects/sharpmimetools/

Die Dateien, die POP3Client.cs, POP3Main.cs, und insert_bug.aspx

Ich würde empfehlen AdvancedIntellect.Es gibt Komponenten, die für POP3-und IMAP - (ASPNetPOP3 und ASPNetIMAP).Gute Qualität und sehr reaktionsschnellen support - I remember erhalten Antworten auf meine Fragen auf ein Wochenende.

Sie können prüfen wollen, unsere Rebex Mail-Komponente.Es beinhaltet IMAP, SMTP, POP3 Protokolle und und S/MIME parser.

Die POP3 nicht ein Konzept von 'ungelesene Nachrichten oder searchig für Nachrichten passenden bestimmten Kriterien. POP3 gibt einfach alle Nachrichten in Ihrem Posteingang.

Verwendung IMAP weisen Sie den IMAP-server zu senden, die Sie nur ungelesene Nachrichten, Nachrichten die uns seit der angegebenen Zeit, Nachrichten von bestimmten Benutzer etc.Sie nicht haben zu laden Sie es alle auf den client und die Filterung gibt es.

Folgende code zeigt, wie zum download ungelesene Nachrichten aus der Imap server mit Rebex.Net.Imap Klasse.

// create client, connect and log in 
Imap client = new Imap();
client.Connect("imap.example.org");
client.Login("username", "password");

// select folder 
client.SelectFolder("Inbox");

// get message list - envelope headers 
ImapMessageCollection messages = client.Search
  (
     ImapSearchParameter.HasFlagsNoneOf(ImapMessageFlags.Seen)
  ); 

// display info about each message 
Console.WriteLine("UID | From | To | Subject");
foreach (ImapMessageInfo message in messages)
{
    Console.WriteLine(
        "{0} | {1} | {2} | {3}",
        message.UniqueId,
        message.From,
        message.To,
        message.Subject);
}

// disconnect 
client.Disconnect();

Beispiel für die Kombination mehrerer Suchkriterien folgt.Das liefert Nachrichten aus dem letzten Jahr, die größer als 100 KB.

ImapMessageCollection messages = client.Search
  (
     ImapSearchParameter.Arrived(DateTime.Now.AddYears(-1), DateTime.Now),
     ImapSearchParameter.Size(1024 * 100, Int32.MaxValue)
  ); 

Sie können die Testversion aus rebex.net/secure-mail.net/download.aspx

Wenn Sie ein open-source-POP3-Umsetzung oder etwas, das frei verfügbar ist, dann werden Sie Zugriff haben, ändern Sie den code, und erweitern Sie es in die Richtung benötigt.Eine schnelle Google resultierte dies in C# POP3-code aus code-Projekt zum abrufen von Nachrichten.

Es gibt etwas befähigen, über Ihre eigenen Rollen, oder zumindest erweitern es.

alt text

Lumisoft ist open-source und umfasst die IMAP-und POP-clients (unter Sonstiges).Ich habe mit Ihnen seit Jahren ohne Probleme.

Wie über WCF?Es ist kostenlos.

Wenn Sie über ein Exchange-server:http://msdn.microsoft.com/en-us/library/bb397812.aspx

ein Beispiel für pop3:http://bartdesmet.net/blogs/bart/archive/2006/09/13/4417.aspx

C#Mail, die Kosten $0, aber auch GNU GPL lizenziert, so stellen Sie sicher, das ist OK.

Sie können dies tun, indem MailBee.NET Objekte: http://www.afterlogic.com/products/net-email-components

Während ich würde empfehlen die Verwendung von IMAP in der Tat, vor allem da er im LEERLAUF unterstützen, die hier schon genannt, Sie könnte das gleiche tun mit POP3.Es gibt eine kurze Beschreibung der beiden Ansätze, und ein vollständiges Beispiel für die IMAP-LEERLAUF-Szenario:

http://www.afterlogic.com/wiki/Getting_notifications_about_new_messages_in_mailbox_%28IMAP_IDLE_and_polling%29

Bitte beachten Sie, dass ich bin verbunden mit AfterLogic, und ich werde Ihnen gerne behilflich sein, wenn Sie Hilfe benötigen, überprüfen Sie die Support-Anfrage option auf unserer website.

IMAPX2 ist die beste.Mit IMAP können Sie Steuern, die Ordner in einem E-mail-server, eine Sache, die Sie nicht in der Lage sein zu tun, mit POP.IMAPX ist ein open-source-code, den Sie einsehen können, und ist kostenlos zu benutzen.

IMAPX ist geradlinig und zuverlässig.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top