{ "info": { "author": "Akira Yoshiyama", "author_email": "akirayoshiyama@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Information Technology", "Intended Audience :: System Administrators", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4" ], "description": "=====\nAmane\n=====\n\nIntroduction\n============\n\nAmane is an instant mailing list manager. Its basic idea has come from\nQuickML (https://github.com/masui/QuickML) but it's not the same.\nQuickML is a common easy-to-use mailing list manager, but Amane has\nbeen developed to manage requests by email. So Amane is a kind of\nticket management system like Redmine.\n\nDifference between QuickML and Amane\n------------------------------------\n\n* Mail destination to create a new mailing list\n\n * QuickML: the first mail account will be used for further posts.\n * Amane: it has a specific mail account to create the new one.\n When a mail received, a new mail account will be created and used.\n\n* On Amane, you can define staff members to register new mailing\n lists automatically. They can't be removed via member-removing\n mails.\n* Amane supports multi-tenancy. Each tenant has a mail account to\n create mailing lists, subject prefix, staff members, various message\n templates.\n* On Amane, each post will have a system message as an attachment. It\n can contain basic mailing-list usage and a list of members.\n\nDifference between Redmine and Amane\n------------------------------------\n\n* Redmine is web-based, but Amane is mail-based.\n* Redmine users can customize ticket status, but Amane users cannot.\n* Redmine users can define importance of tickets, but Amane users\n cannot.\n* Redmine users can define ticket workflows, but Amane users cannot.\n\n\nHow to use Amane\n================\n\nCreating a new ticket\n Send a mail to the specific mail address (e.g. ask@example.com \\*1)\n to create new one. Amane will create a new mailing list with its own\n mail address (e.g. ml-000001@example.com) and forward the initial\n mail to members including addresses at To:, Cc: and From: except \\*1.\n\nMaking a new post\n Send a mail to the mailing list address (e.g. ml-000001@example.com).\n\nRegister new members\n Send a mail with new addresses as Cc: to the mailing list address.\n\nUnregister members\n Send a mail with empty Subject: and addresses to be removed as Cc:\n to the mailing list address.\n\nClosing the ticket\n Send a mail with \"Subject: close\" to the mailing list address.\n\n\nHow to install Amane\n====================\n\nRun commands below::\n\n # yum install mongodb-server\n # pip install amane\n\nHow to configure Amane\n======================\n\nAmane has 2 confiugration files.\n\nAmane confiugration file (/etc/amane/amane.conf)\n------------------------------------------------\n\nA YAML file like below::\n\n db_name: amane\n db_url: mongodb://localhost/\n relay_host: localhost\n relay_port: 25\n listen_address: 192.168.0.1\n listen_port: 25\n log_file: /var/log/amane.log\n domain: example.com\n\n* db_url, db_name ... URI and DB name of MongoDB\n* relay_host, relay_port ... IP address and port number of the\n external SMTP server (relay host) for sending posts\n* listen_address, listen_port ...IP address and port number that\n amane_smptd will listen\n* log_file ... Path to a log file used by Amane commands\n* domain ... Domain name of the mail addresses amane_smtpd will\n handle\n\nTenant confiugration file\n-------------------------\n\nA YAML file like below::\n\n admins:\n - staff1@staff.example.com\n - staff2@staff.example.com\n charset: iso-2022-jp\n ml_name_format: ml-%06d\n new_ml_account: ask\n days_to_close: 7\n days_to_orphan: 7\n readme_msg: |\n Please send posts to {{ ml_address }}.\n To register new members: send a post with their mail addresses as Cc:\n To unregister members: send a post with their mail addresses as Cc: and empty Subject:\n To close a mailing list: send a post with \"Subject: close\"\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n welcome_msg: |\n {{ mailfrom }} has created a new ticket. Please send further posts to {{ ml_address }}.\n To register new members: send a post with their mail addresses as Cc:\n To unregister members: send a post with their mail addresses as Cc: and empty Subject:\n To close a mailing list: send a post with \"Subject: close\"\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n add_msg: |\n {{ mailfrom }} has registered members below:\n {{ cc | join('\\r\\n') }}\n To register new members: send a post with their mail addresses as Cc:\n To unregister members: send a post with their mail addresses as Cc: and empty Subject:\n To close a mailing list: send a post with \"Subject: close\"\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n remove_msg: |\n {{ mailfrom }} has unregistered members below:\n {{ cc | join('\\r\\n') }}\n Current members and staffs only can register them again.\n To register new members: send a post with their mail addresses as Cc:\n To unregister members: send a post with their mail addresses as Cc: and empty Subject:\n To close a mailing list: send a post with \"Subject: close\"\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n goodbye_msg: |\n {{ mailfrom }} has closed this ticket. Please send a post {{ new_ml_address }} for a new ticket.\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n reopen_msg: |\n {{ mailfrom }} has reopened this ticket.\n To register new members: send a post with their mail addresses as Cc:\n To unregister members: send a post with their mail addresses as Cc: and empty Subject:\n To close a mailing list: send a post with \"Subject: close\"\n Current members (except staffs):\n {{ members | join('\\r\\n') }}\n report_subject: Daily status report\n report_msg: |\n Today's status:\n\n New Tickets \n ===========\n {% for m in new -%}\n - ml_name: {{ m.ml_name }} subject: {{ m.subject }}\n created: {{ m.created }} updated: {{ m.updated }} by: {{ m.by }}\n {% endfor %}\n\n Open Tickets \n ============\n {% for m in open -%}\n - ml_name: {{ m.ml_name }} subject: {{ m.subject }}\n created: {{ m.created }} updated: {{ m.updated }} by: {{ m.by }}\n {% endfor %}\n\n Orphaned Tickets \n ================\n {% for m in orphaned -%}\n - ml_name: {{ m.ml_name }} subject: {{ m.subject }}\n created: {{ m.created }} updated: {{ m.updated }} by: {{ m.by }}\n {% endfor %}\n\n Recently Closed Tickets\n =======================\n {% for m in closed -%}\n - ml_name: {{ m.ml_name }} subject: {{ m.subject }}\n created: {{ m.created }} updated: {{ m.updated }} by: {{ m.by }}\n {% endfor %}\n orphaned_subject: This ticket will be closed soon\n orphaned_msg: |\n This message was sent automatically.\n This ticket will be closed 7 days later if no post is sent.\n closed_subject: This ticket was closed\n closed_msg: |\n This message was sent automatically.\n This ticket was closed because it was inactive in the past week.\n Please send a post to {{ new_ml_address }} for a new ticket.\n\n* admins ... List of staff's mail addresses\n* charset ... Default character set of the message body. For example:\n us-ascii\n* ml_name_format ... Format of newly created mailing list account. For\n example, \"ml-%06d\" will cause a mail address like\n \"ml-000001@\".\n* new_ml_account ... A mail account for creating new mailing lists\n* days_to_orphan ... Days from the last post that the system will\n change the status of open ticket as \"orphaned\"\n* days_to_close ... Days that the system will close \"orphaned\" tickets\n* welcome_msg ... Template of the attached text file for the new\n tickets\n* readme_msg ... Template of the attached text file for the usual\n posts\n* remove_msg ... Template of the attached text file for the posts\n removing members\n* reopen_msg ... Template of the attached text file for the reopened\n tickets\n* goodbye_msg ... Template of the attached text file for the posts\n closing tickets\n* report_subject, report_msg ... Subject and message template of daily\n status reports for staffs\n* orphaned_subject, orphaned_msg ... Subject and message template of\n notification mails on making tickets orphaned automatically\n* closed_subject, closed_msg ... Subject and message template of\n notification mails on making tickets closed automatically\n\nYou can register a new tenant to the DB like below::\n\n # amanectl tenant create --yamlfile \n\nTo modify tenant configuration\n\n(1) Using a modified tenant configuration file::\n\n # amanectl tenant update --yamlfile \n\n(2) Using command line options::\n\n # amanectl tenant update