Pregunta

He descargado Swift Mailer desde su página web y tratar de enviar un correo electrónico con el siguiente código sencilla

     <?php
     require_once 'lib/swift_required.php';

    $transport = Swift_SmtpTransport::newInstance('smtp.example.org', 25)
    ->setUsername('your username')
     ->setPassword('your password')
      ;


    $mailer = Swift_Mailer::newInstance($transport);

  //Create a message
  $message = Swift_Message::newInstance('Wonderful Subject')
  ->setFrom(array('john@doe.com' => 'John Doe'))
 ->setTo(array('receiver@domain.org', 'other@domain.org' => 'A name'))
 ->setBody('Here is the message itself')
 ;

 //Send the message
 $result = $mailer->send($message);

?>

Una vez corro la página da error

      Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php  on line 233

    Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.anyhost.com:25 (php_network_getaddresses: getaddrinfo failed: No such host is known. ) in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php on line 233

   Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.domain.com [php_network_getaddresses: getaddrinfo failed: No such host is known. #0]' in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php:235 Stack trace: #0 E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php(70): Swift_Transport_StreamBuffer->_establishSocketConnection() #1 E:\web_sites\swift_mail\lib\classes\Swift\Transport\AbstractSmtpTransport.php(101): Swift_Transport_StreamBuffer->initialize(Array) #2 E:\web_sites\swift_mail\lib\classes\Swift\Mailer.php(74): Swift_Transport_AbstractSmtpTransport->start() #3 E:\web_sites\swift_mail\test.php(33): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in E:\web_sites\swift_mail\lib\classes\Swift\Transport\StreamBuffer.php on line 235

Si quito la línea

  $result = $mailer->send($message);

y luego la página ejecución y sin que aparezca el mensaje de error, tan pronto como puedo añadir por encima de la línea para enviar correo electrónico, i ha obtenido un error.

Mi servidor de salida, el puerto y el identificador de usuario y contraseñas son correctas en mi archivo.

Gracias

¿Fue útil?

Solución

Está buscando el servidor smtp.domain.org pero no es capaz de resolverlo.

Si nos fijamos en la línea el último paso en el comercio pila está llamando, se puede ver que lanzar una excepción:

if (!$this->_stream = fsockopen($host, $this->_params['port'], $errno, $errstr, $timeout))
{
  throw new Swift_TransportException(
    'Connection could not be established with host ' . $this->_params['host'] .
    ' [' . $errstr . ' #' . $errno . ']'
    );
}

Así que o bien necesidad de introducir un servidor SMTP válido para envolver el cable de transmisión () en un try / catch para detectar la excepción y, o bien ingrese en alguna parte o ignorarla

Otros consejos

Los errores que dicen todo lo que necesita saber:

getaddrinfo failed: No such host is known.

El servidor SMTP especificado (smtp.domain.org) no existe, por lo que la secuencia de comandos programa de correo no puede connec a ella para enviar el correo electrónico. Al menos el dominio domain.org existe, por lo que quizás ellos tienen algo del servidor SMTP denominado cosa:

marc@panic:~$ host -t soa domain.org
domain.org has SOA record ns.domain.org. sales.domain.org. 1267596439 10800 3600 604800 3600
marc@panic:~$ host -t mx domain.org
domain.org mail is handled by 10 mail.domain.org.
marc@panic:~$ host domain.org
domain.org has address 208.109.97.130
domain.org mail is handled by 10 mail.domain.org.

especifiquen otro host SMTP que existe y vuelve a intentarlo.

Por favor, controla si el puerto que se utiliza es realmente el puerto utilizado por el servidor de correo. He tratado con un problema similar y finalmente vio que estaba usando el puerto 25 con Yahoo en lugar de 465.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top