It looks like sendgrid can POST the contents of an email to your app:

http://wiki.sendgrid.com/doku.php?id=parse_api

I haven't used this yet, just noticed it in the docs.

Jim Gilliam
http://act.ly/
http://twitter.com/jgilliam

On Thu, Oct 8, 2009 at 6:04 AM, Chap <c...@chap.otherinbox.com> wrote:

>
> Oren, any thoughts on how to regularly receive email to a heroku app?
>
> On Oct 7, 2:50 pm, Oren Teich <o...@heroku.com> wrote:
> > Cron runs on a separate single process.  It doesn't matter how many
> > dyno's you have, you'll only have one cron process ever running.
> >
> > If you're seeing other behavior, let us know!
> >
> > Oren
> >
> > On Oct 7, 2009, at 8:13 AM, Yuri Niyazov wrote:
> >
> >
> >
> >
> >
> > > Also, I forgot the following fun fact about Heroku's cron service.
> > > This was true when I investigated it; might still be true now - not
> > > sure.
> >
> > > Since your app runs on X Heroku VMs, where X is often > 1, then, when
> > > you use Heroku's cron, the cronjob is executed on each box
> > > simultaneously -> unless you do something clever (and I was unable to
> > > figure out what that something clever is), X email processor instances
> > > run at the same time. If you need guarantee that each email is
> > > processed once only, this will screw it up for you.
> >
> > > On Wed, Oct 7, 2009 at 11:05 AM, Yuri Niyazov
> > > <yuri.niya...@gmail.com> wrote:
> > >> I haven't checked out the online cron services yet, but there's
> > >> another issue that I had to solve, and I don't know whether they
> > >> would
> > >> support this or not:
> >
> > >> Heroku limits the execution time of every request to 30 seconds each,
> > >> and a request that takes longer than that is abruptly interrupted.
> > >> This means that the magic URL handler has to be written in such a way
> > >> that it doesn't take longer than 30 secs; I decided to take the
> > >> dirty-hack approach to this: the URL handler processes two emails
> > >> at a
> > >> time (let's say that 30 seconds is almost always enough to open an
> > >> IMAP connection, do a search, and download the text of two emails).
> > >> However, the URL handler checks the total number of messages to be
> > >> processed, and returns a status code for same. So:
> >
> > >>      upto = 2
> > >>      msg_id_list = imap.search(["NOT", "DELETED"])
> > >>      msg_id_list = msg_id_list[0, upto] if upto
> > >>      msg_id_list.each do |msg_id|
> > >>        m = imap.fetch(msg_id, "RFC822")[0].attr["RFC822"]
> > >>        process m
> > >>      end
> > >>      render :json => msg_id_list.to_json
> >
> > >> and then in the script on the cron-box:
> >
> > >>      do
> > >>         msg_id_list = call_url.parse_json
> > >>      until msg_id_list.empty?
> >
> > >> As far as the Google indexing your URL issue: make sure that the GET
> > >> request returns a blank page, and the POST actually executes the
> > >> cronjob. And, of course, you can always protect that URL via
> > >> basic-auth or authenticity-token.
> >
> > >> On Wed, Oct 7, 2009 at 7:42 AM, Wojciech <wojci...@oxos.pl> wrote:
> >
> > >>>> so I have a separate box with actual crond on it, and
> > >>>> it has a script that hits a specific URL on my app on heroku
> > >>>> every x
> > >>>> minutes to process email.
> >
> > >>> There are services that do it for you (i.e. periodically call your
> > >>> magic URL):
> > >>>http://www.onlinecronservices.com/
> >
> > >>> But be careful: this URL could be called by anybody and could even
> > >>> get
> > >>> indexed by Google. You might allow only certain IPs (ip of your
> > >>> online
> > >>> cron service) to call this URL to protect the app.
> >
> > >>> There's also this "poor man's cron" approach, I've seen in Drupal:
> > >>>http://drupal.org/project/poormanscron- but it's a bit crazy.
> >
> > >>> Cheers,
> > >>> Wojciech
> >
> > >>>> On Tue, Oct 6, 2009 at 3:06 PM, Carl Fyffe <carl.fy...@gmail.com>
> > >>>> wrote:
> >
> > >>>>> Rails makes it so easy to send emails. Recieving emails isn't that
> > >>>>> difficult either, but requires a cron or daemon. What is the
> > >>>>> best way
> > >>>>> to do this on Heroku today?
> >
> > >>>>> Carl
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Heroku" group.
To post to this group, send email to heroku@googlegroups.com
To unsubscribe from this group, send email to 
heroku+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/heroku?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to