Re: override built-in mail()

From: Date: Fri, 04 Feb 2011 15:51:44 +0000
Subject: Re: override built-in mail()
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-311145@lists.php.net to get a copy of this message
On 2/4/2011 5:37 AM, Steve Staples wrote: > Hello Guys/Gals, > > it's friday (at least where I am it is) and I have an issue with a > script that I just started using again. The problem is, is that it uses > the built in PHP mail() function, and on my testing server, mail() > doesn't work. The other issue, is that I use SMTP Auth to connect to my > mail server, so that when mail sends out, it comes from my mail server > so that there is less of a chance for being marked as SPAM. > > So, what I am looking to do, is use either the trust old Pear::Mail or > PHPMailer scripts (I am sure there are other ones out there, but those > are the 2 I am most familiar with). > > So now to my actual question. How can I override the built-in PHP > mail() function, to let either of those 2 (or something else someone may > suggest) to act in the same manner as the mail() function? > > Is this easy? I've googled, but haven't seen any reference to doing > what I am looking to do (maybe I just can't google) > > Steve > > You cannot "override" a function. You will have to write a new function, "my_mail" or some such. Have it take the same arguments as the built in mail function, but internally it uses phpmailer or the likes. Then, do a search and replace for " mail(" with " my_mail(" One other possible option, which I had not contemplated until now, would be to actually specify a replacement sendmail executable when setting up the sendmail option in the php.ini. You could specify a php script that can run as though it was sendmail, accept the same arguments, etc... but do all the phpmailer stuff inside. Jim Lucas

« previous php.general (#311145) next »