Posts Tagged ‘exim’

Setting up Symfony to use Exim instead of Sendmail

Sunday, February 1st, 2009 by The BCM Team

By default Symfony uses Sendmail mail transfer agent to prepare emails to be sent out by the system. If you want to use Exim instead,you need to:

  1. Install Exim to your system – please see my Exim on CentOs 4/5
  2. Configure Symfony to use Exim instead of SendmailEdit (or create if it does not exists) /apps/--app name--/config/mailer.yml and add the following to it:
    
    dev:
      deliver: on
      hostname: mail.yourmailhost.com
      port: 25
    all:
      mailer: exim
    

    Here we are setting Exim to be the default mail agent for all environments plus defining SMTP host name and port for the dev environment.

Configuring Exim under CentOS to send emails through an ISP’s SMTP server

Wednesday, October 1st, 2008 by The BCM Team

Edit your /etc/exim/exim.conf file

Add to Routers section


send_to_gateway:
driver = manualroute
transport = remote_smtp
route_list = * mail.optusnet.com.au

If your SMTP server requires authentication you also need to do this:

Add to Authentication section

  • Enable authentication for hosts host1.example.com, host2.example.net and host3.example.org (you have to list all smarthosts where Exim may authenticate users):
    
    remote_smtp:
      debug_print     = "T: remote_smtp for $local_part@$domain"
      driver = smtp
      hosts_try_auth  = host1.example.com:host2.example.net:host3.example.org
    
  • SMTP-Auth with the name “usera” and the password “secrect” (cram_md5 encrypted):
    
    cram_md5:
         driver = cram_md5
         public_name = CRAM-MD5
         client_name = usera
         client_secret = secrect
    
  • SMTP-Auth with the name “usera” and the password “secrect” (plaintext):
    
    plain:
         driver = plaintext
         public_name = PLAIN
         client_send = ^usera^secrect
    
  • Or get name, password and send method automatically from my config-file:
    
    cram_md5:
         driver = cram_md5
         public_name = CRAM-MD5
         client_name = "${extract{auth_name}{${lookup{$sender_address}lsearch{/etc/exim/smtp_users}{$value}fail}}}"
         client_secret = "${extract{auth_pass}{${lookup{$sender_address}lsearch{/etc/exim/smtp_users}{$value}fail}}}"
    plain:
         driver = plaintext
         public_name = PLAIN
         client_send = "${extract{auth_plain}{${lookup{$sender_address}lsearch{/etc/exim/smtp_users}{$value}fail}}}"
    

Add to Transports section


remote_smtp:
  debug_print     = "T: remote_smtp for $local_part@$domain"
  driver = smtp
  hosts_try_auth  = your.smtp.server.com

More information on this topic can be found at http://www.tgunkel.de/docs/exim_smarthosts.en

Exim on CentOs 4/5

Monday, September 29th, 2008 by The BCM Team

This is a quick guide (by jervis) on how to do an install and basic setup of exim on CentOS. This is not meant as a fully inclusive guide but it will get you on the way. Following this you should get a working exim install.

I will assume you have built a CentOS 4 / 5 Server, have yum working and have logged in as root.


yum update

Install exim and mail switching tools


yum install exim
yum install system-switch-mail

Switch your MTA & set exim to start on boot
system-switch-mail
service sendmail stop
service exim start
chkconfig exim on
chkconfig sendmail off

Add a root alias, eg:  “root: me@example.com”
vi /etc/aliases

You may also wish to add some config to your routers section like this, if you want to relay through a smart host.


vi /etc/exim/exim.conf

Then add this before the “dnslookup:” section.


to_smart_host:
driver = manualroute
domains = ! +local_domains
transport = remote_smtp
route_list = “* mail1.example.com:mail2.example.com;”


Restart exim
service exim restart

To test, send an email


echo “test” |mail -s “$HOSTNAME” me@example.com

Then you can flush the Exim Que and watch the log like this


exim -qff ; tail -f /var/log/exim/main.log

Good luck!