[PHP] Email from php
Hi List, I have met with little success sending mail from PHP. I have used mainly the mail() function but have also tried imap_mail() which the documentation says is just a wrapper around mail(). Here is my understanding of the situation: On Windows (WampServer 2.0i ) I manage to send email after setting SMTP = smtp.someserver.com. I guess this works because the server I use relays all mail received; it does not check if the user has been registered or not. It obviously does not bother about the password. On Linux (Centos 5.XX, XAMPP 1.7.2), the above function [mail()] does not work. On Linux, what I have understood, is that the smtp server settings in php.ini do not matter. The sendmail / mail (something like that) utility is called which sends the mail. I have put in the correct sendmail_path setting in php.ini, but, I guess this utility is not configured since I don't receive the mail and running the code does not throw up errors or warnings. What I need to achieve is the ability to send attachments in an email from PHP. I would like one of the following options (in order of preference): 1. Create an email account (specifically Google Apps Mail) and send email as that user. This will not be trivial. I will need to get a fix on authenticating, logging in etc. OR 2. Send mail using an SMTP server. Could you also point me to links showing installation / setting up of a SMTP server on Linux? The XAMPP docs say the Mercury mailserver is included, but I couldn't find any help for setting it up. OR 3. Configuring the sendmail utility on Linux Alternaltly, any URLs giving the entire picture are also welcome. So far, I have only found info that is almost verbatim copy of the PHP manual. They just explain the different mail libraries and functions without considering the mail servers and all the back end. Thanks for taking the trouble to read! Regards, Ferdi
Re: [PHP] Email from php
On 19 May 2010 13:27, Ferdi ferdinan...@printo.in wrote: Hi List, I have met with little success sending mail from PHP. I have used mainly the mail() function but have also tried imap_mail() which the documentation says is just a wrapper around mail(). Here is my understanding of the situation: On Windows (WampServer 2.0i ) I manage to send email after setting SMTP = smtp.someserver.com. I guess this works because the server I use relays all mail received; it does not check if the user has been registered or not. It obviously does not bother about the password. On Linux (Centos 5.XX, XAMPP 1.7.2), the above function [mail()] does not work. On Linux, what I have understood, is that the smtp server settings in php.ini do not matter. The sendmail / mail (something like that) utility is called which sends the mail. I have put in the correct sendmail_path setting in php.ini, but, I guess this utility is not configured since I don't receive the mail and running the code does not throw up errors or warnings. What I need to achieve is the ability to send attachments in an email from PHP. I would like one of the following options (in order of preference): 1. Create an email account (specifically Google Apps Mail) and send email as that user. This will not be trivial. I will need to get a fix on authenticating, logging in etc. OR 2. Send mail using an SMTP server. Could you also point me to links showing installation / setting up of a SMTP server on Linux? The XAMPP docs say the Mercury mailserver is included, but I couldn't find any help for setting it up. OR 3. Configuring the sendmail utility on Linux Alternaltly, any URLs giving the entire picture are also welcome. So far, I have only found info that is almost verbatim copy of the PHP manual. They just explain the different mail libraries and functions without considering the mail servers and all the back end. Thanks for taking the trouble to read! Regards, Ferdi Easiest is (if you're on *nix) to setup an MTA like postfix or exim to relay emails from the localhost. Then get a good mail library like Swiftmailer and point that to the local MTA. Typically, that's about the setup you need to do (if you keep things simple, that is: if you want to mess about with postfix/exim you'll see days or months go by). Regards Peter -- hype WWW: http://plphp.dk / http://plind.dk LinkedIn: http://www.linkedin.com/in/plind Flickr: http://www.flickr.com/photos/fake51 BeWelcome: Fake51 Couchsurfing: Fake51 /hype -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Email from php
On Wed, 2010-05-19 at 16:57 +0530, Ferdi wrote: Hi List, I have met with little success sending mail from PHP. I have used mainly the mail() function but have also tried imap_mail() which the documentation says is just a wrapper around mail(). Here is my understanding of the situation: On Windows (WampServer 2.0i ) I manage to send email after setting SMTP = smtp.someserver.com. I guess this works because the server I use relays all mail received; it does not check if the user has been registered or not. It obviously does not bother about the password. On Linux (Centos 5.XX, XAMPP 1.7.2), the above function [mail()] does not work. On Linux, what I have understood, is that the smtp server settings in php.ini do not matter. The sendmail / mail (something like that) utility is called which sends the mail. I have put in the correct sendmail_path setting in php.ini, but, I guess this utility is not configured since I don't receive the mail and running the code does not throw up errors or warnings. What I need to achieve is the ability to send attachments in an email from PHP. I would like one of the following options (in order of preference): 1. Create an email account (specifically Google Apps Mail) and send email as that user. This will not be trivial. I will need to get a fix on authenticating, logging in etc. OR 2. Send mail using an SMTP server. Could you also point me to links showing installation / setting up of a SMTP server on Linux? The XAMPP docs say the Mercury mailserver is included, but I couldn't find any help for setting it up. OR 3. Configuring the sendmail utility on Linux Alternaltly, any URLs giving the entire picture are also welcome. So far, I have only found info that is almost verbatim copy of the PHP manual. They just explain the different mail libraries and functions without considering the mail servers and all the back end. Thanks for taking the trouble to read! Regards, Ferdi Have you tried just sending mail directly from sendmail? If you can, see if it gives any error messages there. Also, try sending the email to several accounts, as the settings of one email account may be marking the email as spam. Thanks, Ash http://www.ashleysheridan.co.uk
Re: [PHP] Email from php
On Wed, 2010-05-19 at 16:57 +0530, Ferdi wrote: Hi List, I have met with little success sending mail from PHP. I have used mainly the mail() function but have also tried imap_mail() which the documentation says is just a wrapper around mail(). Here is my understanding of the situation: On Windows (WampServer 2.0i ) I manage to send email after setting SMTP = smtp.someserver.com. I guess this works because the server I use relays all mail received; it does not check if the user has been registered or not. It obviously does not bother about the password. On Linux (Centos 5.XX, XAMPP 1.7.2), the above function [mail()] does not work. On Linux, what I have understood, is that the smtp server settings in php.ini do not matter. The sendmail / mail (something like that) utility is called which sends the mail. I have put in the correct sendmail_path setting in php.ini, but, I guess this utility is not configured since I don't receive the mail and running the code does not throw up errors or warnings. What I need to achieve is the ability to send attachments in an email from PHP. I would like one of the following options (in order of preference): 1. Create an email account (specifically Google Apps Mail) and send email as that user. This will not be trivial. I will need to get a fix on authenticating, logging in etc. OR 2. Send mail using an SMTP server. Could you also point me to links showing installation / setting up of a SMTP server on Linux? The XAMPP docs say the Mercury mailserver is included, but I couldn't find any help for setting it up. OR 3. Configuring the sendmail utility on Linux I believe that Zend_Mail would offer help here. It it a pure PHP solution, and therefore should work on various operating systems. Some code that uses Zend_Mail for sending out mail is at git://git.savannah.nongnu.org/bibledit. See directory web/web in there. We use smtp.gmail.com as the external SMTP server, and it works well. Zend_Mail handles all authentication needed: SMTP: smtp.gmail.com, auth = login, username = your_usern...@gmail.com, password = YOUR_PASSWORD, ssl = ssl, port = 465. Teus. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP] Email from php
Ferdi writes: I have met with little success sending mail from PHP. I have used mainly the mail() function but have also tried imap_mail() which the documentation says is just a wrapper around mail(). IMAP is only incoming (at least, the protocol is - the clue is in the name Internet Message Access Protocol - I can't say anything about imap_mail). I agree with others, the easiest solution is a local MTA such as sendmail, or, preferably, something more simple. Here is my understanding of the situation: On Windows (WampServer 2.0i ) I manage to send email after setting SMTP = smtp.someserver.com. I guess this works because the server I use relays all mail received; it does not check if the user has been registered or not. Oof. Yes, most remote/ISP MTAs these days will require some kind of authentication, which is why it is best (IMO) to use a local MTA. It won't mean you don't have to authenticate to the remote MTA, but it will push the responsibility of configuring the MTA onto someone who knows what it's all about. On Linux (Centos 5.XX, XAMPP 1.7.2), the above function [mail()] does not work. On Linux, what I have understood, is that the smtp server settings in php.ini do not matter. The sendmail / mail (something like that) What happens if you type 'man mail'? utility is called which sends the mail. I have put in the correct sendmail_path setting in php.ini, but, I guess this utility is not configured since I don't receive the mail and running the code does not throw up errors or warnings. You can try sending email from the commandline using 'mail' or even sendmail, to see if it works. You could try installing something simple locally (i.e. as your user), perhaps msmtp, which is a piece of cake to setup, especially compared with stuff like sendmail (which it is, anyway, compatible with, to a large extent). What I need to achieve is the ability to send attachments in an email from PHP. I would like one of the following options (in order of preference): 1. Create an email account (specifically Google Apps Mail) and send email as that user. This will not be trivial. I will need to get a fix on authenticating, logging in etc. A simple config to send mail through Google Apps for Domains via a local msmtp installation follows: #-- defaults host smtp.googlemail.com tls on tls_starttls on port 587 tls_trust_file /home/YOUR_USER/.certs/equifax.pem tls_cert_file tls_key_file auth on logfile ~/.logfiles/msmtp.log account foo from f...@yourdomain user f...@yourdomain password YOUR_PASSWORD_HERE #-- You'll need to get the referenced tls_trust_file but I forget where from. It will be different anyway, depending on the system - for example from looking at the msmtp docs it seems you can simply install a package on Debian. 3. Configuring the sendmail utility on Linux From what I remember, I wouldn't recommend sendmail :) It's really complicated, and probably overkill for what you want. -- Gary -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php