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.