Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I get PHP mail() to work? Need help configuring a MTA

Tags:

php

email

debian

Update: I solved it. Documented everything below.

I tried so many things, but it just would not work.

I wouldn't mind using, postfix, exim4, or sendmail. I just need a step by step guide and explanation of what am I doing. I am also using Google Apps for e-mail.

Edit:

mail.log

Nov  3 01:14:02 mugbear postfix[16615]: error: to submit mail, use the Postfix sendmail command
Nov  3 01:14:02 mugbear postfix[16615]: fatal: the postfix command is reserved for the superuser

What does this mean?


Update to edit: Fixed by correcting sendmail_path in php.ini with sendmail_path = /usr/sbin/sendmail -t -i

Edit2: PHP - Just grabbed from documentation. FYI, I removed my e-mail.

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('[email protected]', 'My Subject', $message);

?>

Edit3: Another error:

Nov  3 07:22:29 mugbear postfix/postdrop[17131]: warning: unable to look up public/pickup: No such file or directory
Nov  3 07:22:29 mugbear postfix/postdrop[17133]: warning: unable to look up public/pickup: No such file or directory

Update to edit3: Fixed this with the following link: http://ubuntuforums.org/showthread.php?t=666018 Run this:

sudo mkfifo /var/spool/postfix/public/pickup
sudo /etc/init.d/postfix restart

After that, you'll get this error:

 postfix/master[13902]: fatal: bind 0.0.0.0 port 25: Address already in use

Then you will have to check your processes and kill sendmail processes, for example:

root@server:/etc/postfix# ps aux | grep mail
root     23554  0.0  0.0   8232  1900 ?        Ss   10:17   0:00 sendmail: MTA: accepting connections          
root     27308  0.0  0.0   3004   764 pts/0    S+   10:30   0:00 grep mail
root@server:/etc/postfix# kill 23554

Edit4: What does this mean?

Nov  3 07:34:51 mugbear postfix/pickup[17309]: 6602F1C151: uid=33 from=<www-data>
Nov  3 07:34:51 mugbear postfix/cleanup[17311]: 6602F1C151: message-id=<[email protected]>
Nov  3 07:34:51 mugbear postfix/qmgr[17310]: 6602F1C151: from=<[email protected]>, size=397, nrcpt=1 (queue active)
Nov  3 07:34:51 mugbear postfix/error[17321]: 6602F1C151: to=<[email protected]>, relay=none, delay=0.03, delays=0.02/0/0/0.01, dsn=4.3.5, status=deferred (delivery temporarily suspended: Host or domain name not found. Name service error for name=xen.prgmr.com type=A: Host found but no data record of requested type)

Update to edit4: I ran, dpkg-reconfigure postfix and selected Internet Site.

like image 376
Strawberry Avatar asked Nov 03 '10 00:11

Strawberry


1 Answers

did you properly installed postfix ? If yes : service postfix restart

nano /etc/php.ini

Find sendmail_path , change the line to sendmail_path = /usr/sbin/sendmail.postfix -t -i

Here is the complete server / client installation instructions for php client also http://setahost.com/installing-postfix-as-a-default-mail-sending-program-with-php/

follow client installation instructions ...

like image 128
Conex Avatar answered Nov 15 '22 04:11

Conex