After upgrading to Max OS X Yosemite my machine was running slowly and when I looked in /var/log/mail.log log file I saw the following error repeated every time launchd tried to respawn a postfix process.
postfix/master[xxxxx]: fatal: bind fe80::1 port 25: Can't assign requested address
Apart from filling up the logs this means that launchd is trying to start postfix every few seconds and postfix is quitting, which puts quite an overhead on the system and slows it down significantly.
I then found this article which solved my problem:
http://serverfault.com/questions/646284/postfix-not-working-on-macos-yosemite
Basically, /etc/postfix/main.cf contains the following line, which, for some reason, is not working with IPV6. (maybe the clue is that postfix is trying to bind to address fe80::1 but localhost on IPv6 is ::1):
inet_interfaces = localhost
Changing the line to the IPV4 IP address for localhost fixes the problem. Simply change the entry to this:
inet_interfaces = 127.0.0.1
The next time launchd attempts to start postfix it should work and there should be no more errors.
Apparently changing the protocol to IPv4 (thanks to David Leber) also fixes the problem but I have not confirmed this:
inet_protocols = ipv4
postfix/master[xxxxx]: fatal: bind fe80::1 port 25: Can't assign requested address
Apart from filling up the logs this means that launchd is trying to start postfix every few seconds and postfix is quitting, which puts quite an overhead on the system and slows it down significantly.
I then found this article which solved my problem:
http://serverfault.com/questions/646284/postfix-not-working-on-macos-yosemite
Basically, /etc/postfix/main.cf contains the following line, which, for some reason, is not working with IPV6. (maybe the clue is that postfix is trying to bind to address fe80::1 but localhost on IPv6 is ::1):
inet_interfaces = localhost
Changing the line to the IPV4 IP address for localhost fixes the problem. Simply change the entry to this:
inet_interfaces = 127.0.0.1
The next time launchd attempts to start postfix it should work and there should be no more errors.
Apparently changing the protocol to IPv4 (thanks to David Leber) also fixes the problem but I have not confirmed this:
inet_protocols = ipv4