2010-10-04 2 views

Répondre

0

Je ne suis pas sûr du meilleur, mais un moyen simple est d'utiliser Net::IMAP. Vous pouvez écrire une tâche rake et interroger périodiquement la boîte aux lettres pour des e-mails à l'aide d'un planificateur tel que cron.

Ainsi, votre configuration devrait ressembler à ceci:

  1. Un fichier de bibliothèque qui serveurs wrapper pour IMAP client et autres opérations connexes, comme le traitement des e-mails.
  2. La tâche rake qui, lorsqu'elle est appelée, télécharge les e-mails et les traite à l'aide de l'encapsuleur mentionné ci-dessus.
  3. Le planificateur (Cron ou tout autre de votre choix, personnellement je préfère toujours cron) qui appelle périodiquement cette tâche rake.
0

Selon la documentation de ActionMailer la solution est d'avoir l'e-mail envoyé à votre application rails et mettre en œuvre UserMailer.receive(STDIN.read) pour traiter le courrier électronique.

La documentation (Action Mailer Basics) ne semble pas très convaincante à propos de cette approche. Il ne dit pas où l'appel devrait être mis en œuvre, mais je suppose que ce serait au niveau MTA.

+0

Aussi, bien que je sois nouveau à 'Ruby on Rails' et' Ruby', je ne suis pas sûr quels seraient les avantages d'utiliser 'Rails' par rapport à une vanille' Ruby'. –

+0

Une autre pensée, pas que j'attends de gros volumes mais je n'aime pas l'idée d'appeler un programme pour chaque email. Je vais aller avec l'implémentation d'une application 'Ruby' en utilisant' Net :: IMAP' qui écoute les nouveaux emails (et ne doit pas se connecter à la base de données pour chaque email). –

Questions connexes