Coral: msmtp detail

From The Uniform Server Wiki
Jump to: navigation, search
Coral :  MSMTP | MSMTP - Detail

MSMTP - Detail

The majority of SMTP clients use the Windows registry. These are not suitable for portability. The Uniform Server uses the open source msmtp client. It's flexible, relative easy to set-up, and more importantly it's portable. This page covers the configuration sub-menu which allows you to configure and test the msmtp client.


While msmtp can be configured to use your ISP’s SMTP server, that again restricts portability. The answer is to create a free account such as Google Mail (gmail) or Hotmail and configure msmtp to use that.


This combination allows any PHP scripts to send e-mail to your account transparently. MSMTP has been integrated into The Uniform Server. All you need to do is configure the account as explained below.


UniServer 8-Coral
  Home
  Quick Start
  General
  Apache
  MySQL
  PHP
» MSMTP
  CRON
  DtDNS
  Db Backup
  Perl
  Main Index

Background

SMTP (simple mail transport protocol) was originally designed to be an open relay where an SMTP server would accept any e-mail for forwarding. This quickly became abused by spammers. In retaliation, ISP’s restricted open relaying. This means you cannot use the PHP function to directly send e-mail to a user. You either require your own mail server with all the complication that is associated with it, or you use your ISP’s SMTP server. In either situation you are restricted to a local server on a dedicated line.

Free e-mail accounts such as Google Mail remove these chains by allowing you to relay through their servers. However you must login to their servers before this privilege is granted.

Top

Upgrade

This section is useful for users who wish to upgrade when a newer version of MSMTP is released.

Download the latest version (currently msmtp-1.4.24-w32.zip) from http://sourceforge.net/projects/msmtp/files/

  • Unzip to any folder.
  • Copy file: msmtp-1.4.24-w32\msmtp-1.4.24-w32\msmtp.exe
  • To folder: UniServer\msmtp

That is all there is to an upgrade.

Top

How MSMTP client was integrated

If you are interested in how msmtp integrates into The Uniform Server’s architecture, read on.

There are three requirements for integration:

  • Inform PHP where to find the msmtp executable.
  • Inform msmtp where to find its configuration file.
  • Finally inform msmtp where its log file is to be located.

msmtp configuration file:

Path and name UniServer\msmtp\msmtprc.ini
Note: File name could have been different

 

log file location:

THe configuration file msmtprc.ini contains the log file path.
This path is specified as an absolute path.
For example: "C:/some_folder/UniServer/msmtp/msmtp.log"
Note: When the servers are moved, this path is automatically updated.

php.ini configuration

A single line placed in php.ini configuration file resolves the first two requirements. The line has the following format:

sendmail_path = "C:/some_folder/UniServer/msmtp/msmtp.exe --file=C:/some_folder/UniServer/msmtp/msmtprc.ini  -t"

Note: Absolute paths with forward slashes are used. The first part instructs PHP where to find the msmtp executable, and the second part instructs msmtp where to find its configuration file.

Extract from PHP configuration file php.ini

[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@localhost.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "/usr/bin/sendmail.exe -t"

sendmail_path = "C:/UniServer/msmtp/msmtp.exe --file=C:/UniServer/msmtp/msmtprc.ini  -t"

Top