在 osTicket 中使用电子邮件创建工单

在 osTicket 中使用电子邮件创建工单

我刚刚为我们公司安装了 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 设置指南

相关内容