Sendmail

From Wiki

Jump to: navigation, search

Sendmail - the default mailing system on Linux Computers


Php's mail() function uses sendmail. However what if sendmail is broken, or php's mail() is broken.

Here is how to send an email using sendmail on the command line:

/usr/lib/sendmail email@address
type in message then
and type some more
To send email press CTRL+D

There are a host of options including debug etc.

Relaying Unix/ Linux PHP mail() via an external smtp server ->

If your Web Server IP is listed as SPAM then you need to use a proper mailserver to "relay" your emails. We dont want to have to go writing TONS of code for PHP to replace the mail() function. Here's how you can tell sendmail to relay via a SMTP server :-

Setup your own sendmail.cf (config) file. Here is the Important Line:

DSmail.kartbuilding.net
O QueueDirectory=/var/tmp

DS - obviously - set your SMTP server Here. Also the QueueDirectory has to be set to something sendmail can write to. The quickest to spool the mails is /var/tmp

In order to get PHP to use your sendmail.cf (config), we'll use a htaccess file. Place this in your .htaccess file:

php_value mail.force_extra_parameters "-C /path_to_your/yourconfig.cf"

Do a phpinfo() in your Directory to check that the extra_parameters register. Well - you should hopefully be off then.

Proper Domain Name

If you are finding that your emails are been bounced back saying localhost.localdomain is not valid etc. then your email sendmail is not setup correctly. A quick and dirty solution to this is to add/ replace the following line into yourconfig.cf or sendmail.cf:

# my official domain name
# ... define this only if sendmail cannot automatically determine your domain
Djmail.domain.com

Your emails will be send as www@mail.domain.com instead of www@localhost.localdomain.

Info. found at: http://docs.hp.com/en/32650-90906/ch10s07.html

Personal tools