Question

J'ai téléchargé Swift Mailer à partir de leur site web et d'essayer d'envoyer simple e-mail avec le code suivant

     <?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);

?>

une fois que je lance la page, il donne l'erreur

      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 je supprime la ligne

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

puis exécuter la page et pas d'affichage du message d'erreur, dès que j'ajouter la ligne ci-dessus pour envoyer un email, je suis erreur.

mon serveur sortant, ID du port et de l'utilisateur et les mots de passe sont corrects dans mon dossier.

Merci

Était-ce utile?

La solution

Il cherche le serveur smtp.domain.org mais ne parvient pas à le résoudre.

Si vous regardez la ligne la dernière étape dans le commerce de la pile appelle, vous pouvez le voir lancer une exception:

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 . ']'
    );
}

Donc soit vous devez saisir un serveur smtp valide ou enveloppez la ligne send () dans un try / catch pour intercepter l'exception et soit l'enregistrer quelque part ou de l'ignorer

Autres conseils

Les erreurs vous dire tout ce que vous devez savoir:

getaddrinfo failed: No such host is known.

Le serveur SMTP spécifié (smtp.domain.org) n'existe pas, de sorte que le script Mailer ne peut pas Connec à lui envoyer l'e-mail. Au moins le domaine domain.org existe, alors peut-être qu'ils ont le serveur SMTP nommé autre chose:

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.

Indiquez un autre hôte SMTP qui existe et essayer à nouveau.

S'il vous plaît contrôler si le port que vous utilisez est vraiment le port utilisé par votre serveur de messagerie. J'ai traité un problème similaire et finalement vu que j'utilise le port 25 avec Yahoo au lieu de 465.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top