我正在尝试使用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].
谁能看到我做错了什么?
答案 0 :(得分:1)
如果抛出Swift_TransportException类型的异常,则表示身份验证失败。
要及早了解身份验证是否失败并且将抛出异常,请在创建的传输上调用start()
方法
以下核对清单可帮助您找到此类错误的问题:
function stream_get_transports()
例如,您可以通过在php.ini
中添加它来添加它extension=php_openssl.dll