files_frommail
files_frommail copied to clipboard
Recover your email attachments from your cloud
files_frommail
Files From Mail allow an admin to link a drop-mailbox to Nextcloud.
This way, you can set a mail address ([email protected] in our example) and every mails+attachments send to this mail address will be automatically be saved on the cloud.
dependencies
This app will need Mailparse
If not already installed on your server:
$ sudo pecl install mailparse
If the installation failed with a message about mbstring not installed (but mbstring is already installed) you will need to install the Mailparse extension manually:
$ pecl download mailparse
$ tar -zxvf mailparse-3.0.2.tgz
$ cd mailparse-3.0.2/
$ phpize
$ vi mailparse.c
remove lines 34-37:
#if !HAVE_MBSTRING #error The mailparse extension requires the mbstring extension! #endif
$ ./configure --with-php-config=/usr/bin/php-config
$ make
$ sudo make install
$ sudo echo "extension=mailparse.so" > /etc/php/7.3/mods-available/mailparse.ini
$ sudo ln -s /etc/php/7.3/mods-available/mailparse.ini /etc/php/7.3/apache2/conf.d/20-mailparse.ini
$ sudo apachectl restart
configuration mail server
You now need to tell your mail server that any mails coming to a specific address (in our example: [email protected]) will be redirected to a PHP script: Add this line to /etc/aliases:
files: "|/usr/bin/php -f /path/to/NextcloudMailCatcher.php"
The NextcloudMailCatcher.php can be find in the /lib/ folder of the apps. The script is independant of the rest of the app and can be copied alone on your mail server
Recreate the aliases db:
$ sudo newaliases
Edit NextcloudMailCatcher.php and edit the few settings:
$config = [ 'nextcloud' => 'https://cloud.example.net/', 'username' => 'frommail', 'password' => 'Ledxc-jRFiR-wBMXD-jyyjt-Y87CZ', 'debug' => false ];
Note: the password needs to be a token generated from the webclient in Settings / Security / Devices & session
You can test your setup by running:
$ php -f ./NextcloudMailCatcher.php test
Virtual domain
In case you're using virtual domain (postfix), you will need to create an alias in your MTA:
[email protected] -> [email protected]
Add the drop mailbox address to Nextcloud
To only create the right folder on the right mail address, the app will filters unknown mail addresses. You will need to add the drop-mailbox:
./occ files_frommail:address --add [email protected]
You can choose to secure the mails and ask for a password:
./occ files_frommail:address --password [email protected] your_password
Doing so, only mails containing ':your_password' in their content will be saved.
Changing the generated filename id
By default the generated files start with an identifier in the format 'Y-m-d H:i:s'. This identifier can be changed using
./occ config:app:set --value <NEW FORMAT> files_frommail filename_id
The <NEW FORMAT>
value is a string using PHP date()
format.