php PEAR smtp

I have managed to get my PHP email application working with the PEAR installation on my small business server 2003.
Problem is that it will not work on another server even though all the settings appear correct
The data is not being sent.
Can someone please tell me where on earth the SMTP values are being taken from in the PEAR application (Mail.php)
doctorbillTechAsked:
Who is Participating?
 
ZShaverConnect With a Mentor Commented:
also u can specify a smtp server in the script itself and pear will connect to it
example:

<?php 
    $from_name = "Zach Shaver"); 
    $to_name = "Experts Exchange User"); 

    $From = "From: ".$from_name." <fromaddress@domain.com>"; 
    $To = "To: ".$to_name." <toaddress@domain.com>"; 

    $recipients = "toaddress@domain.com"; 
    $headers["From"] = $From; 
    $headers["To"] = $To; 
    $headers["Subject"] = $subject; 
    $headers["Reply-To"] = "reply@address.com"; 
    $headers["Content-Type"] = "text/plain"; 
    $headers["Return-path"] = "returnpath@address.com"; 
     
    $smtpinfo["host"] = "smtp.server.com"; 
    $smtpinfo["port"] = "25"; 
    $smtpinfo["auth"] = true; 
    $smtpinfo["username"] = "smtp_user"; 
    $smtpinfo["password"] = "smtp_password"; 

    $mail_object =& Mail::factory("smtp", $smtpinfo); 

    $mail_object->send($recipients, $headers, $mailmsg); 
?> 

Open in new window

0
 
ZShaverConnect With a Mentor Commented:
check php.ini, usually found at the installation path of PHP or in c:\windows

if you can't find it make a php script with:

<?php
phpinfo();
?>

which will give u a diagnostic page with all of the loaded modules, their settings (including the SMTP settings), aswell as the location of php.ini so you can change this value.
0
 
doctorbillTechAuthor Commented:
So the PEAR mail.php takes smtp settings from the php.ini file ?
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
doctorbillTechAuthor Commented:
I tried this with my own authsmtp settings:

$smtpinfo["host"] = "smtp.server.com";
    $smtpinfo["port"] = "25";
    $smtpinfo["auth"] = true;
    $smtpinfo["username"] = "smtp_user";
    $smtpinfo["password"] = "smtp_password";

still not working.
0
 
gr8gonzoConnect With a Mentor ConsultantCommented:
Hi doctorhill,

PHP will do its best to figure out the mail host on its own, although it will read the "SMTP" setting from your ini file if you're running on Windows. That said, if you tried to specify the SMTP server manually and it still didn't work, then that makes me wonder if your script is running on a computer that is using a typical residential or cheap business internet connection. A lot of internet providers try to block any outbound email requests that are not routed through their own mail servers. For example, Cox Cable will block any communications on port 25 except for those going to their own SMTP servers (like smtp.west.cox.net).

The reason for this is because of all those viruses about 5-10 years ago that were spreading by emailing themselves out directly to people. So by blocking all mail unless it goes through their own mail servers, internet providers can render those worms/viruses useless and can prevent newly-infected computers from spreading them further (and also limit the misuse/abuse of their own bandwidth).

The downside to this is that a provider can't distinguish between a worm trying to email itself out and a PHP script that is trying to connect to a valid, external mail server for a legitimate reason, so everything gets blocked. If your script is going to stay hosted on that network connection, try changing your SMTP host to whatever you use for your personal email on that internet connection (and don't use auth unless you also use it for your personal email).
0
 
doctorbillTechAuthor Commented:
I have tried using my "authsmtp" account which is usually  allowed from any network. The email is still not being sent
0
 
doctorbillTechAuthor Commented:
Certainly helped me to go forward
0
 
ZShaverCommented:
see if you can connect through telnet to the SMTP server from the remote machine

eg...
telnet smtp.company.com 25
EHLO remotehost.company.com


if the screen stays blank or if telnet won't connect, it's a connectivity issue, not an authentication issue.
0
 
ZShaverCommented:
similarly, you can install a mail client on the "remote" machine...
and verify you can send email from the mail client...

don't stress over doing it in PHP until you verify it's actually working as intended.
0
 
ZShaverCommented:
you already accepted my solution but i figured i'd give u those tips anyways lol
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.