使用交换验证通过swift邮件程序发送电子邮件

时间:2013-06-26 08:45:49

标签: php smtp exchange-server swiftmailer

我正在尝试使用Exchange身份验证向swift邮件发送电子邮件。但是,我似乎无法弄清楚为什么它不起作用。

<?php
require_once( "./application/helpers/swift/swift_required.php" );
$transport =
Swift_SmtpTransport::newInstance( "31.149.66.10", 25 )
    ->setUsername( "username" )
    ->setPassword( 'password' )
    ->setEncryption( "tls" );
$mailer = Swift_Mailer::newInstance( $transport );
$message = Swift_Message::newInstance( "onderwerp" )
->setFrom( array( "from@address.com" ) )
->setTo( array( "to@address.com" ) )
->setBody( "Body van het bericht" );
var_dump( $mailer->send( $message ) );
?>

这给了我错误:Uncaught exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "nieuwsbrief" using 0 possible authenticators'.

服务器配置为使用TLS和基本身份验证(仅在启动TLS后提供基本身份验证)。

我看到有些人使用端口587进行TLS加密,但我无法通过端口587连接。这会出错:Connection could not be established with host 31.149.66.10 [No route to host #113].

谁能看到我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果抛出Swift_TransportException类型的异常,则表示身份验证失败。

要及早了解身份验证是否失败并且将抛出异常,请在创建的传输上调用start()方法

以下核对清单可帮助您找到此类错误的问题:

  • 使用相同的端口和凭据以及加密检查连接是否适用于其他邮件客户端/平台
  • 检查您的php安装是否未启用TLS支持。 您可以使用PHP function stream_get_transports()
  • 检查PHP安装中是否存在“tls”和/或“ssl”

例如,您可以通过在php.ini

中添加它来添加它
extension=php_openssl.dll
  • 确保没有任何防火墙阻止连接,587可能被阻止