2010-09-28 8 views
2

i ont le scénario actuel:Comment traiter automatiquement les emails quand ils arrivent?

  1. mon application génère pour chaque utilisateur une adresse e-mail valide du système de forme permet de dire: [email protected]
  2. lorsqu'un utilisateur a un problème/question, il peut envoyer un email de toute adresse à cette adresse e-mail système prédéfini
  3. l'application doit recevoir les e-mails envoyés par l'utilisateur et les traiter (vérifier spam, insérez dans db)

Dans ce scénario, une première solution possible était de regrouper les adresses électroniques sur une période de 15 minutes, de les traiter (spam ou non) dans une application de bureau externe et de les insérer dans une base de données. Parce que je veux faire cela dans. NET, C#, SQL Server 2008, et il devrait fonctionner sur un serveur web est la solution ci-dessous possible en utilisant WCF? Je crée un service Web WCF qui, lorsqu'un email est reçu par une adresse e-mail, le capture et lance la procédure de traitement. Un problème que je vois avec WCF depuis le début est que je ne pense pas qu'il puisse réagir automatiquement, la seule façon dont j'ai utilisé wcf jusqu'à présent était seulement de l'appeler directement et de recevoir un résultat. Donc je pense qu'une autre couche devrait être placée entre le serveur de messagerie et le service wcf et cette couche devrait "réagir" quand quelque chose est reçu.

l'idée principale est de traiter les courriels à mesure qu'ils arrivent pour ne pas être sortis périodiquement de la boîte de réception.

des pointeurs? merci

+0

Voulez-vous dire que vous voulez écrire un serveur SMTP? – Carvellis

+0

@Jappie: j'ai pensé à cela aussi ... mais honnêtement, j'essaie de trouver un moyen "plus facile" s'il y en a. Si je commence à écrire un serveur SMTP alors j'ai besoin de tester cela aussi si je devais choisir entre écrire un serveur SMTP et récupérer des emails périodiquement je choisirais le plus tard. –

+0

Pouvez-vous expliquer *> et cela devrait fonctionner sur un serveur web *? Machine physique (le serveur exécutant un site Web) ou IIS/etc? –

Répondre

1

Vous avez raison. Un service Web ne peut rien capturer pour vous. Vous devrez appeler (en utilisant un fichier .ashx/ou etc) le service Web. C'est pour cela que les services Web sont appelés.

l'application doit recevoir les e-mails envoyés par l'utilisateur et les traiter

On dirait que vous cherchez à développer un client de messagerie; si oui, alors que diriez-vous:

  • Créer une application client de messagerie (par exemple here)
  • Créer un service Windows, pour aider à traiter les mails.

En supposant que vous avez adapté le programme client, le service Windows aurait travail avec le client, de nouveaux messages et les processus en conséquence.

Pour des exemples de clients de courrier, caisse:

0

Si la connexion à Exchange 2007 SP1 ou version ultérieure services Web Exchange ressemble à la meilleure approche:

Read MS Exchange email in C#

Questions connexes