Swift Mailer envío de correo electrónico tema
-
21-09-2019 - |
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
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.