Thanks to Benjamin Rojas, Andy Stratton, and a tip from Jasper, I was able to successfully send email from my home-brewed MAMP environment. Here’s the summary.
- Add the following to your
/etc/postfix/sasl_passwdfile:smtp.gmail.com:587 username@gmail.com:password(Of course, you don’t have to use GMail or port 587, but you get the idea.)
- Configure postfix:
sudo postmap /etc/postfix/sasl_passwd - Backup and edit your postfix configuration:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.orig sudo vim /etc/postfix/main.cfIf you use TLS, then you will need to add the TLS settings but the other settings should already be there as a result of running the
postmapcommand. You should have these options set in/etc/postfix/main.cf:mydomain_fallback = localhost mail_owner = _postfix setgid_group = _postdrop relayhost=smtp.gmail.com:587 smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options= smtp_use_tls=yes smtp_tls_security_level=encrypt tls_random_source=dev:/dev/urandom - Start postfix:
sudo postfix startIf there are errors, you may need to edit your
/etc/postfix/main.cfand restart postfix:sudo postfix reload - Send a test message:
date | mail -s test youremailaddress@yourdomain.com - Make postfix start automatically on boot by opening your
/System/Library/LaunchDaemons/org.postfix.master.plistfile and adding:<key>RunAtLoad</key> <true/>Add this at the bottom just before the closing
</dict> tag. - Edit your
/etc/php.inifile and configure thesendmail_pathoption:sendmail_path = "sendmail -t -i"
You should now be able to send email using PHP’s mail() function. If you continue to have issues, watch the contents of your postfix mail log:
tail -f /var/log/mail.log

Back in the “good old days” of MS-DOS, you could draw lines, boxes, filled areas (think progress bars), and more using the extended ASCII character set (AKA