I need to test a function that uses PHP's mail()
How can I do this without uploading the script to a server and test it online?
What's even more I am developing with no Internet connection at all.
I am on Mac OSX running localhost from XAMPP.
You don't have to install an MTA on your computer to test PHP's mail()
function. On Unix based systems (Linux, *BSD, OS X, etc.) you can set sendmail_path
to something like tee mail.out > /dev/null
. This will put the emails (including the headers) in a file called mail.out
.
Here is an example of how it would work:
daniel@daniel-laptop:~$ cat | php -d sendmail_path='tee mail.out > /dev/null'
<?php
mail('[email protected]', 'the subject', 'the body');
?>
daniel@daniel-laptop:~$ cat mail.out
To: [email protected]
Subject: the subject
X-PHP-Originating-Script: 1000:-
the body
You can set sendmail_path
in your php.ini
file. If you want to append emails to the file instead of overwriting each time, you can use tee -a
instead of just tee
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With