Coral: 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.
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.
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.
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
log file location:
THe configuration file msmtprc.ini contains the log file path.
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 = email@example.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"