views:

342

answers:

4

Hi, we're starting to build a web app. My colleague is developing on linux, and I am running via a WAMP stack running windows xp. We're using Zend.

When we submit a form and send an email using Zend email, the email would send and then I would get a blank screen, wheras on the linux machine the app would continue normally.

So I wrote my own little script, mail.php which uses phpmailer - and the exact same thing happens, the email sends, and then blank screen. So we have:

if(!$mail->Send())
{
echo "Mailer Error: " . $mail->ErrorInfo;
}
else
{
echo "Message has been sent";
}

So there is no error reported, the email sends, but "Message has been sent" never prints to the screen (or anything else, normal HTML too).

I am not very technical, so apologies if there are obvious debug steps to take. Is there something peculiar to windows php config that I have missed?

It's an off-site SMTP server with authentication.

+1  A: 

Sounds like you are getting an error, but just not seeing it. Make sure you have this somewhere in your code

ini_set( 'display_errors', 1 );
error_reporting( E_ALL );

And inspect your apache logs for 500 errors as well.

Peter Bailey
Hi Peter. Thank you very much for replying. I added the lines you suggested and still I get a blank screen. Apache shows no errors that I can see, the last entry in the apache access log is: 127.0.0.1 - - [27/Aug/2009:20:17:08 +0100] "GET /mail.php HTTP/1.1" 200 -which seems ok?
Dave
+1  A: 

PHP has it's own error log, when in doubt check there. You should be able to locate it by running

<?php
phpinfo();
?>

It should be located in the PHP Core section - if it's blank, edit your php.ini file and turn log_errors on and specify where you want the file to be.

Errors I couldn't get to display I've found using this.

UPDATE

Did some digging and it seems that Zend_Mail is essentially a wrapper for PHP's mail() function according to the documentation: http://framework.zend.com/manual/en/zend.mail.html

With that in mind there's some information on PHP's mail() function in the PHP manual that you're going to want to look at regarding SendMail http://www.php.net/manual/en/ref.mail.php the first comment on the page (as of this writing) has all the details on configuring your WAMP server to behave like a *nix server - at least as far as mail() operations go ;-)

Crazy Joe Malloy
+1  A: 

I use phpmailer with success on a windows box (my dev machine). Can I see the setup code? I do something like the below. One thing is you need to make sure openssl module is installed in php if you are using ssl. Take a look at the below. Make sure your SMTPDebug flag is set to have some output that you can work with.

<?php

$mail             = new PHPMailer();

$mail->IsSMTP();
$mail->Host       = "blah.com";
$mail->SMTPDebug  = 1;
$mail->SMTPAuth   = true;
$mail->SMTPSecure = "ssl";
$mail->Host       = "mail.blah.com";
$mail->Port       = 465;
$mail->Username   = "[email protected]";
$mail->Password   = "smtppass";

$mail->SetFrom('[email protected]', 'Blah Name');
$mail->AddReplyTo("[email protected]", "Blah Name");
$mail->Sender = "[email protected]"

?>
Josh
A: 

Hi everyone, apologies for taking so long to answer this. The problem was caused by a firewall in the office blocking outbound SMTP traffic. I am still not sure as to why it returned nothing - but outside of this office when it was tested the php errors for invalid smtp etc. returned fine. Just a case of getting the appropriate ports allowed on the network.

Thanks everyone for their help.

Dave