Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 472
  • Last Modified:

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)
0
doctorbill
Asked:
doctorbill
  • 5
  • 4
3 Solutions
 
ZShaverCommented:
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
 
ZShaverCommented:
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
 
doctorbillAuthor Commented:
So the PEAR mail.php takes smtp settings from the php.ini file ?
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
doctorbillAuthor 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
 
gr8gonzoConsultantCommented:
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
 
doctorbillAuthor Commented:
I have tried using my "authsmtp" account which is usually  allowed from any network. The email is still not being sent
0
 
doctorbillAuthor 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

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now