Reputation: 131
Am using the following code
<?php
require('mail.php');
error_reporting(E_ALL);
ini_set('display_errors', 1);
$recipients = '<username>@yahoo.com';
// 'From' is the same as my auth username with auth password in sendmail.ini
$headers['From'] = '<username>@gmail.com';
$headers['To'] = '<username>@yahoo.com';
$headers['Subject'] = 'Test message';
$body = 'Test message';
// is this sendmail_path right? Also tried "C:\xampp\sendmail";
$params['sendmail_path'] = 'C:\xampp\sendmail\sendmail.exe';
// Create the mail object using the Mail::factory method
$mail_object = Mail::factory('sendmail', $params);
$mail_object->send($recipients, $headers, $body);
?>
The Pear mail package is installed and located in C:\xampp\php\pear\mail. When the above code is executed from Aptana I get no errors, but no email sent either.
I'm getting confused about paths -- how does it know to use the Pear mail package? I'm not even sure it is using the Pear Mail package.
My sendmail.ini is here
[sendmail]
; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory. (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.
smtp_server=smtp.gmail.com
; smtp port (normally 25)
smtp_port=465
; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL
smtp_ssl=ssl//smtp.gmail.com
; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify
; default_domain=mydomain.com
; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging
error_logfile=error.log
; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging
debug_logfile=debug.log
; if your smtp server requires authentication, modify following two lines
auth_username=<username>@gmail.com
auth_password=<password>
; if your smtp server uses pop3 before smtp authentication, modify the
; following three lines. do not enable unless it is required.
pop3_server=
pop3_username=
pop3_password=
; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify
; the "From: " header of the message content
force_sender=<username>@gmail.com
; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify
; the "To: " header of the message content
force_recipient=
; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting. you can manually set the ehlo/helo name if required
;hostname=
The [mail function] part of my php.ini is here
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP=smtp.gmail.com
; http://php.net/smtp-port
smtp_port=465
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
; Force addition of the specified parameters passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
; mail.force_extra_parameters =
; Add X-PHP-Originating-Script: will include uid of the script followed by
;the filename
;mail.add_x_header=on
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog
I know the repetition of parameters b/w sendmail.ini, php.ini and the php code is a mess. I've tried various combinations where parameters are commented out, left in sendmail.ini, but removed from php.ini, done vice-versa, and on and on - trying combinations recommended by answers here on stackoverflow. Nothing has had an effect so the problem must be elsewhere. I'm not even sure if the repetition matters. Does it?
XAMPP and Pear are working because other simple code executes fine and gives the correct results. Its PEAR mail that I'm struggling with.
I'm open to any and all help -- been working on this for a long time with no success. Thanks in advance.
Upvotes: 0
Views: 33
Reputation: 131
I figured it out! The problem was that Aptana wasn't showing me all the error messages from Gmail. Turns out, I had two-step verification turned on. Once I turned it off, it worked! Viola! Now I can send emails from a server. Yay!
Upvotes: 0