How to configure php.ini with remote SMTP?

42,708

Solution 1

My choice is setup a postfix server in the same web server that sent mail only for localhost and with this setting in main.cf to use a remote SMTP server:

relayhost = [a.b.c.d]

It works for me.

Solution 2

It's not possible, AFAIK. I would either:

  1. Use a fuller functioning mail class such as PEAR::Mail.
  2. If all mail from that machine should be smart-relayed then consider configuring SSMTP as your sendmail binary.

Solution 3

msmtp can be used as an alternative to sendmail which simply forwards traffic directly to an external SMTP server. It's pretty easy to set up and works very well.

Solution 4

PHP on Linux relies on sendmail. I would recommend using a different mail function from another library if you really want to do this. There are recommendations on the following StackOverFlow Post: https://stackoverflow.com/questions/966907/specify-smtp-server-for-php-mail-in-freebsd

Solution 5

PHP by itself can't do this.

Simple forwarders such as ssmtp have some problems relaying php mails.

http://www.freehackers.org/thomas/2008/07/13/linux-a-second-class-citizen-in-the-php-world/

Share:
42,708
Brayn
Author by

Brayn

Updated on September 17, 2022

Comments

  • Brayn
    Brayn over 1 year

    How do I configure PHP to send mail using mail() via a remote SMTP server?

    I've tried to do this using php.ini but it seems that you can only do that under Windows32 and I want to do this on my Unix server.

    Also I've tried to change the configuration for sendmail so it would use a remote SMTP server but I'm not sure that's possible.

  • Andrioid
    Andrioid almost 15 years
    +1 for the answer, I disagree with the later comment though. Usually the sysadmins get the "fun part" of configuring SMTP as not all programmers have any idea of what that is. They just want "email working". Of course, I'm generalizing, no pun intended.
  • Uri
    Uri almost 13 years
    HD, can you please give more details, or point me to a resource that explains this. I've a Google account (as well as Google Apps), and I beleive SMTP requires authentication. Google is using TLS for SMTP on port 587 (and not 25). Where do I specify all this information?
  • Mike
    Mike over 11 years
    This is the best answer really cause you offload the smtp to postfix. If you send mail via your app and the remote server is down you are blocking the request. The best option is to pass off the mailing to a worker in a queue to do that work though but this is a good first step in the right direction.
  • w00t
    w00t about 11 years
    msmtp saved my life :)
  • HBruijn
    HBruijn over 8 years
    Welcome to Server Fault! Whilst this may theoretically answer the question, please provide context around links so others will have some idea what it is and why it’s there. If possible summarise or quote the most relevant part of an important link, in case the target site is unreachable or goes permanently offline.