Question

Im having some problems sending mail. I have a ubuntu server running postfix as mailserver. The webapp is based on symfony 1.2 and has Swift 3 for mailing. Everyrhing is running on the same server. This is the code im trying to run:

public static function sendMailLocal($mailFrom, $mailto, $subject, $mailBody, $prevError)
{
  $mailer = null;
 try
  {
    $connection  = new Swift_Connection_SMTP('localhost', '25');

    $mailer = new Swift($connection);
    // Create the mailer and message objects
  $message = new Swift_Message($subject, $mailBody, 'text/html');

    // Send
    $mailer->send($message, $mailto, $mailFrom);
    $mailer->disconnect();
  }
catch (Exception $e)
  {
    if($mailer != null)
      $mailer->disconnect();
    throw new EmailTransferException ("There was an error while trying to send the email - locally:" . $e->getMessage() . " , first error:" . $prevError);
  }

}

This is the error message im getting:

There was an error while trying to send the email - locally:The SMTP connection failed to start [localhost:25]: fsockopen returned Error Number 111 and Error String 'Connection refused' ,

It's kind of strange, because i did manage to send a mail without swift with this code:

//adresses are examples
$to = "john.doe@mail.com";
$sender_email = "someone@mail.com";
// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Additional headers
$headers .= 'To: <'.$to.'>' . "\r\n";
$headers .= 'From: John Doe<'.$sender_email.'>' . "\r\n";
// Mail it
$success = mail($to, "test from server", "msg", $headers);

Anybody got any ideas about this??

thanks!

Was it helpful?

Solution

It's not a problem with Symfony or PHP - your local SMTP server is unreachable. You likely have a configuration problem with your mail server that is preventing the SMTP server being available on it's native port (25).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top