OTRS und Open3A verknüpfen

(Aktualisiert am 20.10.13 – Name zusammengefasst + Suchfunktion integriert!)

Die beiden kostenlosen Werkzeuge für Selbstständige und Freiberufler lassen sich einfach verknüpfen. OTRS greift dabei lesend auf die Kundendaten von open3A zu. Somit können die Kundendaten zentral in open3A verwaltet werden und stehen in OTRS zur Kundenauswahl zur Verfügung.

Links zu den beiden Softwareherstellern:
OTRS – Die flexible Help Desk Software und IT-Service Management-Lösung
open3A – Das Rechnungsprogramm mit Artikel- und Adressverwaltung (kostenloses Grundpaket)

Erstellen Sie als erstes in der open3A-Datenbank einen neuen View:

CREATE VIEW AdresseOtrs AS SELECT

t1.*,
t2.kundennummer AS kundennummer,
CONCAT(firma, ' ', vorname, ' ', nachname) AS name,
CONCAT(strasse, ' ', nr) AS strasseNr,
CONCAT('1') AS valid

FROM Adresse t1
LEFT JOIN Kappendix t2 on(t1.AdresseID = t2.AdresseID)

WHERE t1.AuftragID = -1 AND t1.type = "default"

Nun muss die Config.pm von OTRS angepasst werden. Diese sollte in „/opt/otrs/Kernel/“ oder in „/etc/otrs/Kernel/“ liegen. Unterhalb von „Start of your own config options!!!“ folgenden Code einfügen:

# CustomerUser (customer database backend and settings)
$Self->{CustomerUser} = {
    Name => 'open3a',
    Module => 'Kernel::System::CustomerUser::DB',
    Params => {
            DSN => 'DBI:mysql:database=<Datenbankname>;host=localhost',
            User => '<Datenbankbenutzer>',
            Password => '<Datenbankpasswort>',
            Table => 'AdresseOtrs',
            SourceCharset => 'utf-8',
            DestCharset => 'utf-8',
            CaseSensitive => 0,
        },
# customer unique id
CustomerKey => 'kundennummer',

# customer #
CustomerID => 'kundennummer',
CustomerValid => 'valid',
    CustomerUserListFields => ['name', 'email'],
    CustomerUserSearchFields => ['name', 'email', 'kundennummer'],
    CustomerUserSearchPrefix => '',
    CustomerUserSearchSuffix => '*',
    CustomerUserSearchListLimit => 250,
    CustomerUserPostMasterSearchFields => ['email'],
    CustomerUserNameFields => ['name'],
    CustomerUserEmailUniqCheck => 1,
    ReadOnly => 1,
    Map => [
        # note: Login, Email and CustomerID needed!
#        [ 'UserFirstname',  'Firstname',  'vorname', 1, 1, 'var', '', 0 ],
        [ 'UserLastname',   'Lastname',   'name',  1, 1, 'var', '', 0 ],
        [ 'UserLogin',      'Username',   'kundennummer',      1, 1, 'var', '', 0 ],
        [ 'UserEmail',      'Email',      'email',      1, 1, 'var', '', 0 ],
        [ 'UserCustomerID', 'CustomerID', 'kundennummer', 0, 1, 'var', '', 0 ],
        [ 'UserPhone',        'Phone',       'tel',        1, 0, 'var', '', 0 ],
        [ 'UserFax',          'Fax',         'fax',          1, 0, 'var', '', 0 ],
        [ 'UserMobile',       'Mobile',      'mobil',       1, 0, 'var', '', 0 ],
        [ 'UserStreet',       'Street',      'strasseNr',       1, 0, 'var', '', 0 ],
        [ 'UserZip',          'Zip',         'plz',          1, 0, 'var', '', 0 ],
        [ 'UserCity',         'City',        'ort',         1, 0, 'var', '', 0 ],
        [ 'UserCountry',      'Country',     'land',      1, 0, 'var', '', 0 ],
        [ 'ValidID',          'Valid',       'valid',     0, 1, 'int', '', 0 ],
    ],
};

Diese Daten müssen der open3A Installation entsprechend angepasst werden:

  • <Datenbankname>
  • <Datenbankbenutzer>
  • <Datenbankpasswort>

Thunderbird Autokonfiguration

Damit beim einrichten eines neuen E-Mailkontos in Thunderbird nicht alle Serverdaten von Hand eintragen werden müssen, gibt es die Thunderbird Autoconfig. Nachdem ich es eingerichtet und getestet hatte war ich echt begeistert.
Deshalb möchte ich es Euch nicht vorenthalten:

Auf dem Server wird eine URL angelegt: http://autoconfig.domain.tld
(Die Domain muss mit der E-Maildomain übereinstimmen!)
In diesem Pfad gibt es den Ordner „mail“ und in diesem befindet sich eine Datei „config-v1.1.xml“, welche Ihr Euren Bedürfnissen anpassen müsst:


<?xml version="1.0" encoding="UTF-8"?>

<clientConfig version="1.1">
<emailProvider id="freenet.de">
<domain>freenet.de</domain>
<displayName>Freenet Mail</displayName>
<displayShortName>Freenet</displayShortName>
<incomingServer type="imap">
<hostname>imap.freenet.de</hostname>
<port>143</port>
<socketType>STARTTLS</socketType>
<authentication>password-encrypted</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<incomingServer type="pop3">
<hostname>pop.freenet.de</hostname>
<port>110</port>
<socketType>STARTTLS</socketType>
<authentication>password-cleartext</authentication>
<username>%EMAILADDRESS%</username>
</incomingServer>
<outgoingServer type="smtp">
<hostname>smtp.freenet.de</hostname>
<port>587</port>
<socketType>STARTTLS</socketType>
<authentication>password-encrypted</authentication>
<username>%EMAILADDRESS%</username>
</outgoingServer>
</emailProvider>
</clientConfig>

Die Konfiguration ist nun unter http://autoconfig.domain.tld/mail/config-v1.xml erreichbar.
Wenn Ihr nun in Thunderbird Euren Namen, E-Mailadresse und Passwort eintragt, findet Thunderbird die Serverkonfiguration automatisch und Ihr müsst nichts mehr anpassen.