我刚刚为我们公司安装了 osTicket 服务器,但在从电子邮件创建票证时遇到了问题。我使用 Postfix 作为我的 SMTP 服务器,使用 Dovecot 作为我的 IMAP 服务器。
在 osTicket 面板中配置电子邮件设置时我没有收到任何错误。但是当我发送电子邮件到[电子邮件保护],它没有在我的 osticket 面板中创建任何票证。我检查了我的邮件日志,一切正常。我认为我的“automail.php”文件有问题。
如果你能帮助我,我会非常高兴。提前谢谢。
automail.php 文件:
***
#!/usr/bin/php -q
<?php
/*********************************************************************
automail.php
PHP script used for remote email piping...same as as the perl version.
Peter Rotich <[email protected]>
Copyright (c) 2006-2013 osTicket
http://www.osticket.com
Released under the GNU General Public License WITHOUT ANY WARRANTY.
See LICENSE.TXT for details.
vim: expandtab sw=4 ts=4 sts=4:
**********************************************************************/
# Configuration: Enter the url and key. That is it.
# url => URL to api/tickets.email e.g http://yourdomain.com/support/api/tickets.email
# key => API's Key (see admin panel on how to generate a key)
#
$config = array(
'url'=>'support.example.com/tickets.php',
'key'=>'A12857AA982EEE5612EF8F2443538D76'
);
#pre-checks
function_exists('file_get_contents') or die('upgrade php >=4.3');
function_exists('curl_version') or die('CURL support required');
#read stdin (piped email)
$data=file_get_contents('php://stdin') or die('Error reading stdin. No message');
#set timeout
set_time_limit(10);
#curl post
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $config['url']);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, 'osTicket API Client v1.7');
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:', 'X-API-Key: '.$config['key']));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result=curl_exec($ch);
curl_close($ch);
//Use postfix exit codes...expected by MTA.
$code = 75;
if(preg_match('/HTTP\/.* ([0-9]+) .*/', $result, $status)) {
switch($status[1]) {
case 201: //Success
$code = 0;
break;
case 400:
$code = 66;
break;
case 401: /* permission denied */
case 403:
$code = 77;
break;
case 415:
case 416:
case 417:
case 501:
$code = 65;
break;
case 503:
$code = 69;
break;
case 500: //Server error.
default: //Temp (unknown) failure - retry
$code = 75;
}
}
exit($code);
?>
答案1
根据 osTicket 官方文档,有两种电子邮件获取方法:电子邮件管道和 POP3/IMAP 轮询。它们都需要进一步的配置,而您没有这样做。
路由传入的电子邮件
设置系统以接受电子邮件因系统而异,取决于您的个人偏好。osTicket 目前支持管道(别名)和 POP3/IMAP 轮询方法来路由传入的电子邮件。票证被路由到部门并分配与电子邮件相关的默认优先级。
要启用传入电子邮件提取,请在管理面板中转到设置和电子邮件,然后选中电子邮件提取复选框以启用它。默认情况下,它是禁用的。
电子邮件管道
管道方法允许实时处理电子邮件。需要在邮件服务器级别进行额外设置,以将原始电子邮件消息管道传输到 osTicket 管道处理程序。支持远程和本地管道。请参阅 电子邮件管道指南。
POP3/IMAP 轮询
POP3/IMAP 帐户轮询方法最适合拥有远程邮件帐户和/或邮件传递设置访问权限有限的个人。添加到系统的每个电子邮件地址都可以有一个与之关联的帐户。请参阅POP3/IMAP 设置指南。