Sep 13

If you run your asterisk behind Firewalls (which you probably do), you might run into issues with your ISP blocking outgoing Emails from your Asterisk Box. Here’s a simple solution which lets you use the Gmail servers instead, eliminating these issues.
Steps to use Gmail for Asterisk here

Few simple notes :

  1. You can use your Google Apps Account too. Just use your full Email as username , eg. john@mycompany.com
  2. Make sure the Asterisk hostname as reported by ‘hostname’ command is in /etc/hosts – on the line with 127.0.0.1 as IP address – otherwise, sendmail would take few minutes to start and send emails.
Tagged with:
Jun 12

Apparently, merb’s approach to sending email is far better than ActiveMailer. However, I still find it quite annoying and heavyweight for simple applications. And most of the email notifications sent from web applications tend to be simple. In order to send emails via Merb, you need to create mailer views and mailer controllers and pass parameters between them carefully. I, for sure, always get confused which parameters to pass where and how incoming parameters get be exposed to the mailer view templates.

Here’s a simple routine to send emails right from within your merb controllers. Or any other place, for that matter.

 
 gem install mailfactory
 gem install smtp_tls # if you need authentication or 
                            #want to use google smtp.
                            # A quick google search will find it.
# start sending emails:
require 'mailfactory'
require 'net/smtp'
mail             = MailFactory.new
   mail.from      = 'your@company.com'
   mail.subject  = 'Test'
   mail.html       = 'html mail body'
   mail.text       = "mail text , if it's not html"
   mail.replyTo   = 'noreply@company.com'
   # repeat next line for each attachment
   mail.attach_as(file_path, 'filename to attach as', 'application/pdf')
Net::SMTP.start(
  'smtp.host.com',
  25,
  'from@domain.com',
  'smtp username',
  'smtp password',
  'plain' # authentication method
) do |smtp|
smtp.send_message(mail.to_s, 'from@address.com', 'to@address.com')
end

I find this simpler since it’s encapsulated in one place. No need to create multiple files and impose entire MVC paradigm for sending emails. Let’s KISS.

Tagged with:
preload preload preload