2010-01-21 8 views
5

Pour mon side project kwiqi, j'utilise la méthode 'receive' d'ActionMailer pour traiter les e-mails entrants afin de suivre mes dépenses. Heroku n'a pas de serveur de messagerie local qui exécute le même code ne fonctionnera pas. Une solution que j'ai envisagée est de frapper périodiquement une action du contrôleur qui va tirer des messages de Gmail. Y a-t-il d'autres solutions qui sont raisonnables? Est-ce que quelqu'un traite les emails entrants dans Heroku?Traitement des e-mails entrants sur Heroku

Répondre

4

Heroku prend en charge l'exécution des tâches à l'aide de DelayedJob. Les travailleurs sont financés comme Dynos (vous payez à l'heure) et pour cela, vous disposez d'une ressource dédiée pour traiter vos emails.

Dans le passé, j'ai utilisé Cron appelant un contrôleur dans mon application. C'est assez efficace. Si la limite horaire est un problème, vous pouvez appeler votre application à partir d'un autre emplacement ... J'ai un compte Dreamhost bon marché pour certains de mes sites non prioritaires que j'ai utilisés comme systèmes Cron.

Il existe également un certain nombre de services ping et uptime que vous pouvez utiliser à cette fin également ... transmettez simplement ces services à votre contrôleur de messagerie.

+0

Je pensais autant. C'est un projet personnel donc il n'y a pas de mal à attacher un dyno pour faire un peu de traitement. –

+1

J'aime l'idée d'utiliser un service de ping pour effectuer du travail. –

+2

BTW, Heroku a un add-on en bêta qui vous permettra d'exécuter des emplois toutes les 10 minutes (http://addons.heroku.com/scheduler) –

2

Une véritable limitation de Heroku est actuellement que la fréquence la plus rapide qu'ils prennent en charge pour les tâches cron est horaire.

Je vous recommande d'utiliser Gmail et d'utiliser le travail différé comme alternative à cron pour définir une fréquence plus raisonnable. Il y a un bon tutoriel sur la mise en place à WiseJive

12

Vous pouvez utiliser l'addon sendgrid, ainsi que son API d'analyse (http://wiki.sendgrid.com/doku.php?id=parse_api). Je l'ai écrit un petit tutoriel sur la façon de le faire ici: http://nanceskitchen.com/2010/02/21/accept-incoming-emails-into-a-heroku-app-using-sendgrid/

+0

Merci pour ce tutoriel. Avez-vous dû payer pour l'addon pro SendGrid? – hornairs

+2

Non, j'utilise toujours l'addon gratuit. J'ai également utilisé CloudMailin, et cela fonctionne bien. – DougB

7

Je sais que c'est un peu en retard, mais pour quelqu'un d'autre qui pourrait trouver cela utile à l'avenir, nous avons créé l'addon http:///CloudMailin.com pour Heroku qui devrait vous aider à recevoir des e-mails sur les applications Heroku Rails très facilement.