Introducing Pepbot

2010/11/25

Introducing my new little creature just released in the wild: Pepbot.

What?

It's a disposable temporary email service. His main goal is to help you dodge spam by providing a valid throw away mail address you can use instead of your real one. For example when you want to leave a comment on a shady blog, register to a random forum or whatever else.

When prompted for a valid mail simply use whatever@pepbot.com then go to Pepbot and check your mail or forget about it.

But there is more: the auto-mode!

Many web services needs to verify that the email address you provide is a valid one before confirming your account. To do so they will send a verification link you should click. So ideally you need to check your mail, wait for the verification, click the link and then finally receive a valid account. Here comes the awesomeness: use a special mailbox with the -a tag like random-a@pepbot.com and Pepbot will click on every link from every mail it receives for you!

Why?

I am learning python so I thought it would be fun to start coding something useful (at least for me), plus I needed something to help me sharpen my sys admin skills.

So far it worked: I've coded, I've hardened a VPS, I've deployed an app (oh man it was painful!)... I learned a lot troughout all the process. And I had fun. Epic win.

How?

Pepbot is built on top of Lamson and... Memcached.

Long story short: whenever a mail arrives Lamson reads it, performs some tasks, and puts it into a local Memcached server. The frontend (which is written with bottle.py) retrieves the emails from the Memcached server whenever an user asks to check a mailbox.

Why Memcached and not some other well-estabilished database? Because I tought (actually I made the math) that writing on disk would be a bottleneck for performances. I wanted something that could scale well and fast against a large volume of stored mails and since ideally the majority of mails will be totally useless (spam! nom nom nom) why bother?

So?

Nothing. Go and play with my baby.

Remeber that he is in public beta: so if you find a bug please let me know!

And if you have suggestions and/or a feature request don't be shy and contact me.

Follow me: @gbrindisi