ticgal / yagp

Yet Another GLPI Plugin
https://tic.gal/en/project/yagp-yet-another-glpi-plugin/
GNU Affero General Public License v3.0
2 stars 1 forks source link

Replace ticket requester (mailcollector) Tag to search Not working #36

Closed jcervantes-sipecom closed 7 months ago

jcervantes-sipecom commented 9 months ago

I'm testing the Tag to search, and I tested it in multiples way but not working at all. I'm set the tag in this way:

image

And also:

image

I send emails in different forms, surrounding the email with the tag in the body, subject, and TO, but nothing, all the tickets are created as I'm creating them:

image

image

image

My system information:

Information about system installation and configuration
GLPI 10.0.10 ( => /glpi)
Installation mode: TARBALL
Current language:en_GB

Server
 
Operating system: Linux SERVER 6.2.0-1015-azure #​15~22.04.1-Ubuntu SMP Fri Oct  6 13:20:44 UTC 2023 x86_64
PHP 8.1.2-1ubuntu2.14 apache2handler (Core, FFI, PDO, Phar, Reflection, SPL, SimpleXML, Zend OPcache, apache2handler, apcu,
    bcmath, bz2, calendar, ctype, curl, date, dom, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, intl, json, ldap, libxml,
    mbstring, mysqli, mysqlnd, openssl, pcre, pdo_mysql, posix, readline, session, shmop, soap, sockets, sodium, standard, sysvmsg,
    sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlwriter, xsl, zip, zlib)
Setup: max_execution_time="60" memory_limit="512M" post_max_size="10M" safe_mode="" session.save_handler="files"
    upload_max_filesize="10M" 
Software: Apache ()
    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0
Server Software: Ubuntu 22.04
    Server Version: 10.6.12-MariaDB-0ubuntu0.22.04.1-log
    Server SQL Mode: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    Parameters: usrglpidb@localhost/db
    Host info: Localhost via UNIX socket

PHP version (8.1.2-1ubuntu2.14) is supported.
Sessions configuration is OK.
Allocated memory is sufficient.
mysqli extension is installed.
Following extensions are installed: dom, fileinfo, filter, libxml, json, simplexml, xmlreader, xmlwriter.
curl extension is installed.
gd extension is installed.
intl extension is installed.
zlib extension is installed.
The constant SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES is present.
Database engine version (10.6.12) is supported.
No files from previous GLPI version detected.
The log file has been created successfully.
Write access to /glpi/files/_cache has been validated.
Write access to /glpi has been validated.
Write access to /glpi/files/_cron has been validated.
Write access to /glpi/files has been validated.
Write access to /glpi/files/_dumps has been validated.
Write access to /glpi/files/_graphs has been validated.
Write access to /glpi/files/_lock has been validated.
Write access to /glpi/files/_pictures has been validated.
Write access to /glpi/files/_plugins has been validated.
Write access to /glpi/files/_rss has been validated.
Write access to /glpi/files/_sessions has been validated.
Write access to /glpi/files/_tmp has been validated.
Write access to /glpi/files/_uploads has been validated.

Web server root directory configuration seems safe.
Sessions configuration is secured.
OS and PHP are relying on 64 bits integers.
exif extension is installed.
ldap extension is installed.
openssl extension is installed.
Following extensions are installed: bz2, Phar, zip.
Zend OPcache extension is installed.
Following extensions are installed: ctype, iconv, mbstring, sodium.
Write access to /glpi/marketplace has been validated.
Timezones seems loaded in database.

GLPI constants
 
GLPI_ROOT: "/glpi"
GLPI_CONFIG_DIR: "/glpi"
GLPI_VAR_DIR: "/glpi/files"
GLPI_LOG_DIR: "/glpi/log"
GLPI_MARKETPLACE_DIR: "/glpi/marketplace"
GLPI_USE_CSRF_CHECK: "1"
GLPI_CSRF_EXPIRES: "7200"
GLPI_CSRF_MAX_TOKENS: "100"
GLPI_USE_IDOR_CHECK: "1"
GLPI_IDOR_EXPIRES: "7200"
GLPI_ALLOW_IFRAME_IN_RICH_TEXT: false
GLPI_SERVERSIDE_URL_ALLOWLIST: ["/^(https?|feed):\\/\\/[^@:]+(\\/.*)?$/"]
GLPI_TELEMETRY_URI: "https://telemetry.glpi-project.org"
GLPI_INSTALL_MODE: "TARBALL"
GLPI_NETWORK_MAIL: "glpi@teclib.com"
GLPI_NETWORK_SERVICES: "https://services.glpi-network.com"
GLPI_MARKETPLACE_ALLOW_OVERRIDE: true
GLPI_MARKETPLACE_MANUAL_DOWNLOADS: true
GLPI_USER_AGENT_EXTRA_COMMENTS: ""
GLPI_DISABLE_ONLY_FULL_GROUP_BY_SQL_MODE: "1"
GLPI_AJAX_DASHBOARD: "1"
GLPI_CALDAV_IMPORT_STATE: 0
GLPI_DEMO_MODE: "0"
GLPI_CENTRAL_WARNINGS: "1"
GLPI_DOC_DIR: "/glpi/files"
GLPI_CACHE_DIR: "/glpi/files/_cache"
GLPI_CRON_DIR: "/glpi/files/_cron"
GLPI_DUMP_DIR: "/glpi/files/_dumps"
GLPI_GRAPH_DIR: "/glpi/files/_graphs"
GLPI_LOCAL_I18N_DIR: "/glpi/files/_locales"
GLPI_LOCK_DIR: "/glpi/files/_lock"
GLPI_PICTURE_DIR: "/glpi/files/_pictures"
GLPI_PLUGIN_DOC_DIR: "/glpi/files/_plugins"
GLPI_RSS_DIR: "/glpi/files/_rss"
GLPI_SESSION_DIR: "/glpi/files/_sessions"
GLPI_TMP_DIR: "/glpi/files/_tmp"
GLPI_UPLOAD_DIR: "/glpi/files/_uploads"
GLPI_INVENTORY_DIR: "/glpi/files/_inventories"
GLPI_NETWORK_REGISTRATION_API_URL: "https://services.glpi-network.com/api/registration/"
GLPI_MARKETPLACE_PLUGINS_API_URI: "https://services.glpi-network.com/api/marketplace/"
GLPI_I18N_DIR: "/glpi/locales"
GLPI_VERSION: "10.0.10"
GLPI_SCHEMA_VERSION: "10.0.10@05de68add675fb55abaeec10f3a2552085594a16"
GLPI_MARKETPLACE_PRERELEASES: false
GLPI_MIN_PHP: "7.4.0"
GLPI_MAX_PHP: "8.4.0"
GLPI_YEAR: "2023"

Libraries
 
htmlawed/htmlawed version 1.2.14 in (/glpi/vendor/htmlawed/htmlawed)
phpmailer/phpmailer version 6.8.0 in (/glpi/vendor/phpmailer/phpmailer/src)
simplepie/simplepie version 1.5.8 in (/glpi/vendor/simplepie/simplepie/library)
tecnickcom/tcpdf version 6.6.2 in (/glpi/vendor/tecnickcom/tcpdf)
michelf/php-markdown in (/glpi/vendor/michelf/php-markdown/Michelf)
true/punycode in (/glpi/vendor/true/punycode/src)
iamcal/lib_autolink in (/glpi/vendor/iamcal/lib_autolink)
sabre/dav in (/glpi/vendor/sabre/dav/lib/DAV)
sabre/http in (/glpi/vendor/sabre/http/lib)
sabre/uri in (/glpi/vendor/sabre/uri/lib)
sabre/vobject in (/glpi/vendor/sabre/vobject/lib)
laminas/laminas-i18n in (/glpi/vendor/laminas/laminas-i18n/src)
laminas/laminas-servicemanager in (/glpi/vendor/laminas/laminas-servicemanager/src)
monolog/monolog in (/glpi/vendor/monolog/monolog/src/Monolog)
sebastian/diff in (/glpi/vendor/sebastian/diff/src)
donatj/phpuseragentparser in (/glpi/vendor/donatj/phpuseragentparser/src/UserAgent)
elvanto/litemoji in (/glpi/vendor/elvanto/litemoji/src)
symfony/console in (/glpi/vendor/symfony/console)
scssphp/scssphp in (/glpi/vendor/scssphp/scssphp/src)
laminas/laminas-mail in (/glpi/vendor/laminas/laminas-mail/src/Protocol)
laminas/laminas-mime in (/glpi/vendor/laminas/laminas-mime/src)
rlanvin/php-rrule in (/glpi/vendor/rlanvin/php-rrule/src)
ramsey/uuid in (/glpi/vendor/ramsey/uuid/src)
psr/log in (/glpi/vendor/psr/log/Psr/Log)
psr/simple-cache in (/glpi/vendor/psr/simple-cache/src)
psr/cache in (/glpi/vendor/psr/cache/src)
league/csv in (/glpi/vendor/league/csv/src)
mexitek/phpcolors in (/glpi/vendor/mexitek/phpcolors/src/Mexitek/PHPColors)
guzzlehttp/guzzle in (/glpi/vendor/guzzlehttp/guzzle/src)
guzzlehttp/psr7 in (/glpi/vendor/guzzlehttp/psr7/src)
glpi-project/inventory_format in (/glpi/vendor/glpi-project/inventory_format/lib/php)
wapmorgan/unified-archive in (/glpi/vendor/wapmorgan/unified-archive/src)
paragonie/sodium_compat in (/glpi/vendor/paragonie/sodium_compat/src)
symfony/cache in (/glpi/vendor/symfony/cache)
html2text/html2text in (/glpi/vendor/html2text/html2text/src)
symfony/css-selector in (/glpi/vendor/symfony/css-selector)
symfony/dom-crawler in (/glpi/vendor/symfony/dom-crawler)
twig/twig in (/glpi/vendor/twig/twig/src)
twig/string-extra in (/glpi/vendor/twig/string-extra)
symfony/polyfill-ctype not found
symfony/polyfill-iconv not found
symfony/polyfill-mbstring not found
symfony/polyfill-php80 not found
symfony/polyfill-php81 not found
symfony/polyfill-php82 in (/glpi/vendor/symfony/polyfill-php82)
league/oauth2-client in (/glpi/vendor/league/oauth2-client/src/Provider)
league/oauth2-google in (/glpi/vendor/league/oauth2-google/src/Provider)
thenetworg/oauth2-azure in (/glpi/vendor/thenetworg/oauth2-azure/src/Provider)

Plugins list
 
    accounts             Name: Accounts                       Version: 3.0.3      State: Enabled                                 
        Install Method: Marketplace
    activity             Name: Activities                     Version: 3.1.2      State: Installed / not activated               
        Install Method: Marketplace
    actualtime           Name: ActualTime                     Version: 2.2.0      State: Enabled                                 
        Install Method: Marketplace
    advancedplanning     Name: advancedplanning               Version: 1.1.0      State: Enabled                                 
        Install Method: Marketplace
    news                 Name: Alerts                         Version: 1.12.1     State: Enabled                                 
        Install Method: Marketplace
    barcode              Name: Barcode                        Version: 2.7.1      State: Enabled                                 
        Install Method: Marketplace
    behaviors            Name: Behaviours                     Version: 2.7.2      State: Enabled                                 
        Install Method: Marketplace
    fields               Name: Campos adicionales             Version: 1.21.6     State: Installed / not activated               
        Install Method: Marketplace
    positions            Name: Cartography                    Version: 6.0.2      State: Enabled                                 
        Install Method: Marketplace
    cmdb                 Name: CMDB                           Version: 3.0.3      State: Enabled                                 
        Install Method: Marketplace
    archimap             Name: Diagramas                      Version: 3.3.2      State: Enabled                                 
        Install Method: Marketplace
    manageentities       Name: Entities portal                Version: 4.0.3      State: Installed / not activated               
        Install Method: Marketplace
    formcreator          Name: Form Creator                   Version: 2.13.7     State: Enabled                                 
        Install Method: Marketplace
    gantt                Name: gantt                          Version: 1.0.4      State: Enabled                                 
        Install Method: Marketplace
    gappessentials       Name: Gapp Essentials                Version: 2.1.2      State: Enabled                                 
        Install Method: Marketplace
    glpiinventory        Name: GLPI Inventory                 Version: 1.3.3      State: Enabled                                 
        Install Method: Marketplace
    resources            Name: Human Resources                Version: 3.0.4      State: Installed / not activated               
        Install Method: Marketplace
    geninventorynumber   Name: Inventory number generation    Version: 2.8.3      State: Enabled                                 
        Install Method: Marketplace
    datainjection        Name: Inyección de datos             Version: 2.13.3     State: Installed / not activated               
        Install Method: Marketplace
    addressing           Name: IP Adressing                   Version: 3.0.1      State: Enabled                                 
        Install Method: Marketplace
    uninstall            Name: Item's Lifecycle (uninstall)   Version: 2.9.0      State: Enabled                                 
        Install Method: Marketplace
    mailanalyzer         Name: Mail Analyzer                  Version: 3.0.0      State: Enabled                                 
        Install Method: Manual
    mreporting           Name: Más informes                   Version: 1.8.5      State: Enabled                                 
        Install Method: Marketplace
    metabase             Name: Metabase                       Version: 1.3.3      State: Installed / not activated               
        Install Method: Marketplace
    mfa                  Name: MFA                            Version: 1.0.2      State: Installed / not activated               
        Install Method: Marketplace
    moreticket           Name: More ticket                    Version: 1.7.3      State: Installed / not activated               
        Install Method: Marketplace
    mydashboard          Name: My Dashboard                   Version: 2.1.5      State: Enabled                                 
        Install Method: Marketplace
    ocsinventoryng       Name: OCS Inventory NG               Version: 2.0.4      State: Installed / not activated               
        Install Method: Marketplace
    officeonline         Name: Office Online                  Version: 3.0.1      State: Enabled                                 
        Install Method: Manual
    onetimesecret        Name: OneTimeSecret                  Version: 2.0.3      State: Enabled                                 
        Install Method: Marketplace
    order                Name: Orders management              Version: 2.10.4     State: Enabled                                 
        Install Method: Marketplace
    pdf                  Name: Print to pdf                   Version: 3.0.0      State: Not installed                           
        Install Method: Marketplace
    reports              Name: Reportes                       Version: 1.16.0     State: Installed / not activated               
        Install Method: Marketplace
    tag                  Name: Tag Management                 Version: 2.11.6     State: Installed / not activated               
        Install Method: Marketplace
    tasklists            Name: Tasks list                     Version: 2.0.3      State: Installed / not activated               
        Install Method: Marketplace
    useditemsexport      Name: Used items export              Version: 2.5.1      State: Not installed                           
        Install Method: Marketplace
    yagp                 Name: YAGP                           Version: 2.2.0      State: Enabled                                 
        Install Method: Marketplace

OscarBeiro commented 8 months ago

Hi, Sorry about the delay. Paid clients have priority :)

This is how it works the Tag to search feature:

When creating a ticket by mail it looks for an email in the body of the message among the specified tags. If an email is found, it looks for an email that is linked to a user. If it finds a user with that email it links it as the ticket requester.

In order to create tickets by mail you must configure a recipient (Configuration > Recipients).

Once configured, depending on the tag we have added in Tag to search we will have to write an email in the following way sending it to the email configured as recipient. In the case of using the same tag of the capture: tag to search: ##email##

Email body:

email##exemplo@gmail.com##email

jcervantes-sipecom commented 8 months ago

Hi @OscarBeiro, yes I know customers have priority don't worry.

About what you did explain, well as I said in the open case I tested in multiples way including putting the email surrounded with the tag "solicitante" in the body of the email:

image

Of course, the email is linked with a valid user with respective authorizations:

image

Of course, I have set Mail Collectors/Recipients/Receivers.

And I have set the tag in the TAG SEARCH:

image

But the ticket is not created by the user in the tag, instead with the user that send the email:

image

In your answer @OscarBeiro, you have an underscore at the end: ##email##exemplo@gmail.com##email##_ Is it intended?

xacobofg commented 8 months ago

Hi. For that tag to be detected correctly you have to indicate it this way in the configuration: imagen If it still fails, please check the logs for any errors.

jcervantes-sipecom commented 8 months ago

Hi @xacobofg thanks for your reply, but I already tested with ##solicitante## in the tag and arround the email in the body message, and the issue still persist, I tested again today:

image

But the ticket is still opening as I am the requester instead the email in the tag:

image

In the php-error.log and sql-error.log don't have any error.

I tested with no plugins except YAGP as well, but the result is the same, the ticket is created with the email sender no with the email in the tags.

xacobofg commented 8 months ago

The only thing I can think of is that when the plugin adds the requester it re-runs the GLPI mail rules. Is it possible that you have some rule that overwrites the requester?

jcervantes-sipecom commented 8 months ago

hI @xacobofg sorry for the delay, I've been testing a lot but nothing, with an empty environment the TAG does not replace the requester. These are the evidence:

image

image

image

image

image

image

image

But as you can see in the last picture, the requester is the same in that the FROM header.

I'm using the last plugin version:

image

OscarBeiro commented 8 months ago

Please test the 2.2.1 new release and report back. Thanks

jcervantes-sipecom commented 8 months ago

Hi, @OscarBeiro sorry but still no working, tested with YAGP 2.2.1, the result is that the from header is taken as requester instead the email in the tag:

image

image

Is it maybe a wrong tag configuration? :

image

Is it maybe that I'm sending the tag wrong in the email? I'm putting the email enclosed in the tag at the beginning of the body email, because the body email has more text and images:

image

FrancisTicgal commented 7 months ago

Hello, We have detected and resolved the issue for the next version 2.2.2.

image When the label is placed in the body of the email, glpi detects it and adds a link to the email itself. Later on the ticket it is displayed as follows: image The link is not generated correctly and causes the requester assignment to fail as well.

With the same configuration and Yagp version 2.2.2, I recommend using spaces between labels and mail image

Regards.

jcervantes-sipecom commented 7 months ago

Hi, yes it works with 2.2.2 version:

image

But I found that is necessary from Outlook to remove link "mailto:"

image

image

When the email is sent with this link mailto, the plugin doesn't work:

image