Return-Path for ActionMailer

Having spent several hours trying to get this to work, thought I’d share it with the world!

h3. The Goal

When sending emails from an automated service like RSS:Forward it is common to want the return-path and the reply-to headers to be different.

This lets the receiver of the email reply to the author of the email while bounces are returned to another address which, presumably, updates the list database to ensure that bad email addresses are automatically removed from the list.

h3. The Problem

Ruby on Rails does not support setting the return path when sending emails using @ActionMailer@

h3. The Solution

* Use sendmail to deliver emails.
* Create your own @perform_delivery_sendmail@ method

h3. The Details

Make sure that you configure ActionMailer to use @sendmail@ by adding the following line to your @config/environment.rb@ file.

  config.action_mailer.delivery_method = :sendmail

Add to the top of your Mailer model so it looks like this…

  class SubscriptionMailer < ActionMailer::Base
 
    def perform_delivery_sendmail(mail)
      IO.popen("/usr/sbin/sendmail -i -t [email protected]","w+") do |sm|
       sm.print(mail.encoded.gsub(/\r/, ''))
       sm.flush
      end
    end
 
  ...

h3. The Fine Print

This will presumably not work on the MS legacy operating system.

Use the code at your own risk … it works for me

If you have a better solution, please let me know.

Australia Tibet Council

fter much development, review and some false starts, a new web site has been launched with my assistance. It is for the “Australia Tibet Council”:http://www.atc.org.au a not-for-profit organisation campaigning for a Free Tibet.

The site covers an interesting range of services for its readership, and for members of the organisation…

* an information portal
* a place to purchace Tibet related merchandise
* an email campaign manager for guided lobbying
* online donation and subscription management
* online mailing list manager

I make no claims regarding the content of the site (that is all the work of the excellent executive staff and their helpers), but I am rather pleased with my contribution to the look of the site and the range of services that are provided.

For the record, the site is based on…

* Joomla for the portal elements
* Virtuemart (a Joomla plugin) for the merchantising component
* phpList for the email list management
* subscription management by a ruby on rails application developed by me

BTW, you should seriously consider “making a donation”:https://www.atc.org.au/members/ to this worthy cause.

Rails testing with sqlite

Just a quick note with an answer to an issue which has been bugging me for days.

h3. The problem

Tests run OK within Eclipse but fail miserably from the command line with an error like…

Started
...E
../lib/sqlite3/errors.rb:94:in `check': cannot rollback - no transaction is active (SQLite3::SQLException)

h3. The diagnosis

It seems that the test runner automatically loads fixtures even if not asked to do so. The template fixture files contain stubs for test records which cause sqlite3 to choke.

h3. The solution

Just make sure that fixture files actually contain real fixtures that are needed for your testing!

New Hosted Application

Over the last couple of months I have been diligently working on a new Hosted Application, RSS:Forward. The application finally reached sufficient maturity last night to be exposed to the world! This process makes having a baby look easy…

Anyway, promotion of the service will start over the next couple of weeks, so keep listening.