swiftmailer mail_send.php错误500-内部服务器错误(日志:超时)

时间:2016-12-21 19:22:26

标签: php external swiftmailer postfix-mta dovecot

我的系统:

  • 操作系统:Linux VServer
  • 网络服务器:apache2邮件服务器(使用IMAP):Dovecot
  • MTA(MailTransportAgent):Postfix + postfix.admin(webapp)来管理
  • 我的域名:acegames.de(137.74.140.78)
  • 通过端口465进行TLS-Mail加密正在运行

我想做什么:

执行(网站上的按钮 - > javascript-> ajax-> php)php脚本mail_send.php(+查询)以使用swiftmail函数发送邮件。 Swiftmail应该使用我的postfix SMTP-Server发送邮件。 swiftmail文件位于 / var / www / html / ts / swiftmailer /

这是http://ts.acegames.de/mail_send.php 或/var/www/html/ts/mail_send.php:

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

$error = $_GET['err']; $time = $_GET['time']; $user = $_GET['user'];

$transport = Swift_SmtpTransport::newInstance('acegames.de', 465);
$transport->setUsername("USER@acegames.de");
$transport->setPassword("PASS");


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


$message = Swift_Message::newInstance('Teamspeak Error Report');
$message->setFrom(array('USER@acegames.de' => 'USER'));
$message->setTo(array('report@acegames.de' => 'ts3 report'));
$message->setBody(
'<html>' . 
' <head></head>' . 
' <body>' . 
' <p>Reported Error: ' . $error . '</p>' . 
'  <p>Time: ' . $time . '</p>' . 
'  <p>User: ' . $user . '</p>' . 
' </body>' . 
'</html>', 'text/html' );




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

但我得到的是500-INTERNAL_SERVER_ERROR和以下日志: 的 /var/log/apache2/error.log:

[:error] [pid 23732] [client 188.174.41.220:49670] PHP Fatal error:   Uncaught exception 'Swift_TransportException' with message 'Connection
to acegames.de:465 Timed Out'  in
/var/www/html/ts/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php:404\nStack
trace:\n#0 
/var/www/html/ts/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(289):
Swift_Transport_AbstractSmtpTransport->_getFullResponse(0)\n#1 
/var/www/html/ts/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(117):
Swift_Transport_AbstractSmtpTransport->_readGreeting()\n#2 
/var/www/html/ts/swiftmailer/lib/classes/Swift/Mailer.php(79):
Swift_Transport_AbstractSmtpTransport->start()\n#3 
/var/www/html/ts/mail_send.php(36):
Swift_Mailer->send(Object(Swift_Message))\n#4 {main}\n  thrown in 
/var/www/html/ts/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php
on line 404, referer: https://ts.acegames.de/

我不知道问题是什么。香港专业教育学院搜索了每个日志文件(mail.log,syslog,apache2日志,...),但我还没有发现任何与此错误相关的内容。

4 个答案:

答案 0 :(得分:1)

错误消息表明它无法连接到您指定的邮件服务器。你需要像这样指定TLS:

$transport = Swift_SmtpTransport::newInstance('acegames.de', 465, 'tls');

在此处阅读更多内容:Swiftmailer Manual

答案 1 :(得分:0)

你有超时错误,我怀疑这是一个端口问题,检查输出端口是否可用或被阻止。

我的意思是客户端和服务器之间的某个端口可能被防火墙或安全策略,垃圾邮件策略等阻止。

答案 2 :(得分:0)

@hokusai要求的更多信息:

<强>的telnet acegames.de 465 尝试137.74.140.78 ... 连接到acegames.de。 转义字符是“^]”。 ... 连接由外部主机关闭。

<强>的telnet acegames.de 443 尝试137.74.140.78 ... 连接到acegames.de。 转义字符是“^]”。 ... 连接由外部主机关闭。

<强>远程登录acegames.de 80 尝试137.74.140.78 ... 连接到acegames.de。 转义字符是“^]”。 301已移动永久

永久移动

文档曾在这里移动。

在acegames.de端口80

的Apache / 2.4.10(Debian的)服务器 ... 连接由外部主机关闭。

答案 3 :(得分:0)

因此,如果您控制acegames.de上的邮件服务器,请显示mail.log(/var/log/mail.log)的内容。在端口465上有一些东西,但是连接正在立即关闭。