• If you are still using CentOS 7.9, it's time to convert to Alma 8 with the free centos2alma tool by Plesk or Plesk Migrator. Please let us know your experiences or concerns in this thread:
    CentOS2Alma discussion

Extension Dev - Handling Mails

Hello,

Yes, /opt/psa/admin/plib/modules/PMSP/scripts/mail-handler.sh should be executable. And probably mail-handler should be placed into sbin/, not plib

So it is not possible to implement an Extension for Plesk with an Mail-Handler wich you can install without SSH Access?
 
Yes, you can set proper ownership/permissions on handler in extension post-install.php
 
I updated my post-install.php, but it doesn't seem to work

PHP:
<?php
chmod(dirname(__FILE__).'/mail-handler.sh', 0755);
chown(dirname(__FILE__).'/mail-handler.sh', 'popuser.postfix');

pm_ApiCli::callSbin('mail_handlers_control', array('--add', '--priority', '50', '--queue=before-queue', '--type', 'global', '--executable', dirname(__FILE__).'/mail-handler.sh', '--enabled', '--name', 'PMSP'));
pm_ApiCli::callSbin('mail_handlers_control', array('--add', '--priority', '50', '--queue=before-sendmail', '--type', 'global', '--executable', dirname(__FILE__).'/mail-handler.sh', '--enabled', '--name', 'PMSP'));

Here's the output:

Code:
root@v22016081573736335:~# plesk bin extension -i /root/PMSP-0.1-2.zip
PHP Warning: chmod(): Operation not permitted; File: /opt/psa/admin/plib/modules/PMSP/scripts/post-install.php, Line: 2

PHP Warning: chown(): Unable to find uid for popuser.postfix; File: /opt/psa/admin/plib/modules/PMSP/scripts/post-install.php, Line: 3

The extension was successfully installed.

Why does chmod not work? How could I get this done so that I can finally start implementation of my Extension?
 
ugh. sorry I looked up just "plesk bin" and not "plesk sbin". For otheres, this ways works:

PHP:
<?php
pm_ApiCli::callSbin('ch_mode', array('+x', dirname(__FILE__).'/mail-handler.sh'));
pm_ApiCli::callSbin('ch_owner', array('popuser:postfix', dirname(__FILE__).'/mail-handler.sh'));

pm_ApiCli::callSbin('mail_handlers_control', array('--add', '--priority', '50', '--queue=before-queue', '--type', 'global', '--executable', dirname(__FILE__).'/mail-handler.sh', '--enabled', '--name', 'PMSP'));
pm_ApiCli::callSbin('mail_handlers_control', array('--add', '--priority', '50', '--queue=before-sendmail', '--type', 'global', '--executable', dirname(__FILE__).'/mail-handler.sh', '--enabled', '--name', 'PMSP'));

Now it works. nice.
 
That script could be PHP? Or do it have to be Shell?

PHP *is* shell, just use "#!/bin/php" in the first line and "<?php" in line two followed by your php code. Remember, the /etc/php/cli/php.ini (or similar, depending on your distribution) is used for command line while there is another version for apache and other webservers.
 
Back
Top