[PATCH 2 of 2 v2] e-mail: add documentation about configuration settings

Thomas De Schampheleire patrickdepinguin at gmail.com
Thu Aug 6 12:53:54 UTC 2015


# HG changeset patch
# User Thomas De Schampheleire <thomas.de.schampheleire at gmail.com>
# Date 1437061235 -7200
#      Thu Jul 16 17:40:35 2015 +0200
# Node ID 7fde37d0caf05c2f59ba41ef0ebdeab1f436872d
# Parent  36872d5ea39382ccd6413d2d373d6f899fbd837d
e-mail: add documentation about configuration settings

Document e-mail related configuration settings in the documentation
(overview) and the .ini file itself (technical details and example
settings).

This includes a replacement of @localhost examples to @example.com, to
indicate that real addresses should normally be used.

---
v2:
- add default values to .ini file
- add (limited) documentation on the SMTP server settings
- leave out description of error_subject_prefix
- misc. changes suggested by Mads Kiilerich

diff --git a/development.ini b/development.ini
--- a/development.ini
+++ b/development.ini
@@ -16,22 +16,55 @@ debug = true
 pdebug = false
 
 ################################################################################
-## Uncomment and replace with the address which should receive                ##
-## any error reports after application crash                                  ##
-## Additionally those settings will be used by Kallithea mailing system       ##
+## E-mail settings                                                            ##
+##                                                                            ##
+## Refer to the documentation ("E-mail settings") for more details.           ##
+##                                                                            ##
+## It is recommended to use a valid sender address that passes access         ##
+## validation and spam filtering in mail servers.                             ##
 ################################################################################
-#email_to = admin at localhost
-#error_email_from = paste_error at localhost
-#app_email_from = kallithea-noreply at localhost
+
+## 'From' header for application e-mails. You can optionally add a name.
+## Default:
+#app_email_from = Kallithea
+## Examples:
+#app_email_from = Kallithea <kallithea-noreply at example.com>
+#app_email_from = kallithea-noreply at example.com
+
+## Subject prefix for application e-mails.
+## A space between this prefix and the real subject is automatically added.
+## Default:
+#email_prefix =
+## Example:
 #email_prefix = [Kallithea]
 
+## Recipients for error e-mails and fallback recipients of application mails.
+## Multiple addresses can be specified, space-separated.
+## Only addresses are allowed, do not add any name part.
+## Default:
+#email_to =
+## Examples:
+#email_to = admin at example.com
+#email_to = admin at example.com another_admin at example.com
+
+## 'From' header for error e-mails. You can optionally add a name.
+## Default:
+#error_email_from = pylons at yourapp.com
+## Examples:
+#error_email_from = Kallithea Errors <kallithea-noreply at example.com>
+#error_email_from = paste_error at example.com
+
+## SMTP server settings
+## Only smtp_server is mandatory. All other settings take the specified default
+## values.
 #smtp_server = mail.server.com
 #smtp_username =
 #smtp_password =
-#smtp_port =
+#smtp_port = 25
 #smtp_use_tls = false
 #smtp_use_ssl = false
-## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
+## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
+## If empty, use any of the authentication parameters supported by the server.
 #smtp_auth =
 
 [server:main]
diff --git a/docs/index.rst b/docs/index.rst
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -37,6 +37,7 @@ Kallithea Documentation
 .. toctree::
    :maxdepth: 1
 
+   usage/e-mail
    usage/performance
    usage/backup
    usage/debugging
diff --git a/docs/usage/e-mail.rst b/docs/usage/e-mail.rst
new file mode 100644
--- /dev/null
+++ b/docs/usage/e-mail.rst
@@ -0,0 +1,69 @@
+.. _email:
+
+===============
+E-mail settings
+===============
+
+The Kallithea configuration file has several e-mail related settings. When
+these contain correct values, Kallithea will send e-mail in the situations
+described below. If the e-mail configuration is not correct so that e-mails
+cannot be sent, all mails will show up in the log output.
+
+Before any e-mail can be sent, an SMTP server has to be configured using the
+configuration file setting ``smtp_server``. If required for that server, specify
+a username (``smtp_username``) and password (``smtp_password``), a non-standard
+port (``smtp_port``), encryption settings (``smtp_use_tls`` or ``smtp_use_ssl``)
+and/or specific authentication parameters (``smtp_auth``).
+
+Application e-mails
+-------------------
+
+Kallithea sends an e-mail to `users` on several occasions:
+
+- when comments are given on one of their changesets
+- when comments are given on changesets they are reviewer on or on which they
+  commented regardless
+- when they are invited as reviewer in pull requests
+- when they request a password reset
+
+Kallithea sends an e-mail to all `administrators` upon new account registration.
+Administrators are users with the ``Admin`` flag set in the ``Admin->Users``
+section.
+
+When Kallithea wants to send an e-mail but due to an error cannot correctly
+determine the intended recipients, the administrators and the addresses
+specified in ``email_to`` in the configuration file are used as fallback.
+
+Recipients will see these e-mails originating from the sender specified in the
+``app_email_from`` setting in the configuration file. This setting can either
+contain only an e-mail address, like `kallithea-noreply at example.com`, or both
+a name and an address in the following format: `Kallithea
+<kallithea-noreply at example.com>`. The subject of these e-mails can
+optionally be prefixed with the value of ``email_prefix`` in the configuration
+file.
+
+Error e-mails
+-------------
+
+When an exception occurs in Kallithea -- and unless interactive debugging is
+enabled using ``set debug = true`` in the ``[app:main]`` section of the
+configuration file -- an e-mail with exception details is sent by WebError_'s
+``ErrorMiddleware`` to the addresses specified in ``email_to`` in the
+configuration file.
+
+Recipients will see these e-mails originating from the sender specified in the
+``error_email_from`` setting in the configuration file. This setting can either
+contain only an e-mail address, like `kallithea-noreply at example.com`, or both
+a name and an address in the following format: `Kallithea Errors
+<kallithea-noreply at example.com>`.
+
+*Note:* The WebError_ package does not respect ``smtp_port`` and assumes the
+standard SMTP port (25). If you have a remote SMTP server with a different port,
+you could set up a local forwarding SMTP server on port 25.
+
+References
+----------
+- `Error Middleware (Pylons documentation) <http://pylons-webframework.readthedocs.org/en/latest/debugging.html#error-middleware>`_
+- `ErrorHandler (Pylons modules documentation) <http://pylons-webframework.readthedocs.org/en/latest/modules/middleware.html#pylons.middleware.ErrorHandler>`_
+
+.. _WebError: https://pypi.python.org/pypi/WebError
diff --git a/kallithea/bin/template.ini.mako b/kallithea/bin/template.ini.mako
--- a/kallithea/bin/template.ini.mako
+++ b/kallithea/bin/template.ini.mako
@@ -10,22 +10,55 @@ debug = true
 pdebug = false
 <%text>
 ################################################################################
-## Uncomment and replace with the address which should receive                ##
-## any error reports after application crash                                  ##
-## Additionally those settings will be used by Kallithea mailing system       ##
+## E-mail settings                                                            ##
+##                                                                            ##
+## Refer to the documentation ("E-mail settings") for more details.           ##
+##                                                                            ##
+## It is recommended to use a valid sender address that passes access         ##
+## validation and spam filtering in mail servers.                             ##
 ################################################################################</%text>
-#email_to = admin at localhost
-#error_email_from = paste_error at localhost
-#app_email_from = kallithea-noreply at localhost
+
+<%text>## 'From' header for application e-mails. You can optionally add a name.
+## Default:</%text>
+#app_email_from = Kallithea
+<%text>## Examples:</%text>
+#app_email_from = Kallithea <kallithea-noreply at example.com>
+#app_email_from = kallithea-noreply at example.com
+
+<%text>## Subject prefix for application e-mails.
+## A space between this prefix and the real subject is automatically added.
+## Default:</%text>
+#email_prefix =
+<%text>## Example:</%text>
 #email_prefix = [Kallithea]
 
+<%text>## Recipients for error e-mails and fallback recipients of application mails.
+## Multiple addresses can be specified, space-separated.
+## Only addresses are allowed, do not add any name part.
+## Default:</%text>
+#email_to =
+<%text>## Examples:</%text>
+#email_to = admin at example.com
+#email_to = admin at example.com another_admin at example.com
+
+<%text>## 'From' header for error e-mails. You can optionally add a name.
+## Default:</%text>
+#error_email_from = pylons at yourapp.com
+<%text>## Examples:</%text>
+#error_email_from = Kallithea Errors <kallithea-noreply at example.com>
+#error_email_from = paste_error at example.com
+
+<%text>## SMTP server settings
+## Only smtp_server is mandatory. All other settings take the specified default
+## values.</%text>
 #smtp_server = mail.server.com
 #smtp_username =
 #smtp_password =
-#smtp_port =
+#smtp_port = 25
 #smtp_use_tls = false
 #smtp_use_ssl = false
-<%text>## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)</%text>
+<%text>## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
+## If empty, use any of the authentication parameters supported by the server.</%text>
 #smtp_auth =
 
 [server:main]
diff --git a/kallithea/config/deployment.ini_tmpl b/kallithea/config/deployment.ini_tmpl
--- a/kallithea/config/deployment.ini_tmpl
+++ b/kallithea/config/deployment.ini_tmpl
@@ -11,22 +11,55 @@ debug = true
 pdebug = false
 
 ################################################################################
-## Uncomment and replace with the address which should receive                ##
-## any error reports after application crash                                  ##
-## Additionally those settings will be used by Kallithea mailing system       ##
+## E-mail settings                                                            ##
+##                                                                            ##
+## Refer to the documentation ("E-mail settings") for more details.           ##
+##                                                                            ##
+## It is recommended to use a valid sender address that passes access         ##
+## validation and spam filtering in mail servers.                             ##
 ################################################################################
-#email_to = admin at localhost
-#error_email_from = paste_error at localhost
-#app_email_from = kallithea-noreply at localhost
+
+## 'From' header for application e-mails. You can optionally add a name.
+## Default:
+#app_email_from = Kallithea
+## Examples:
+#app_email_from = Kallithea <kallithea-noreply at example.com>
+#app_email_from = kallithea-noreply at example.com
+
+## Subject prefix for application e-mails.
+## A space between this prefix and the real subject is automatically added.
+## Default:
+#email_prefix =
+## Example:
 #email_prefix = [Kallithea]
 
+## Recipients for error e-mails and fallback recipients of application mails.
+## Multiple addresses can be specified, space-separated.
+## Only addresses are allowed, do not add any name part.
+## Default:
+#email_to =
+## Examples:
+#email_to = admin at example.com
+#email_to = admin at example.com another_admin at example.com
+
+## 'From' header for error e-mails. You can optionally add a name.
+## Default:
+#error_email_from = pylons at yourapp.com
+## Examples:
+#error_email_from = Kallithea Errors <kallithea-noreply at example.com>
+#error_email_from = paste_error at example.com
+
+## SMTP server settings
+## Only smtp_server is mandatory. All other settings take the specified default
+## values.
 #smtp_server = mail.server.com
 #smtp_username =
 #smtp_password =
-#smtp_port =
+#smtp_port = 25
 #smtp_use_tls = false
 #smtp_use_ssl = false
-## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
+## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
+## If empty, use any of the authentication parameters supported by the server.
 #smtp_auth =
 
 [server:main]
diff --git a/test.ini b/test.ini
--- a/test.ini
+++ b/test.ini
@@ -15,22 +15,55 @@ debug = true
 pdebug = false
 
 ################################################################################
-## Uncomment and replace with the address which should receive                ##
-## any error reports after application crash                                  ##
-## Additionally those settings will be used by Kallithea mailing system       ##
+## E-mail settings                                                            ##
+##                                                                            ##
+## Refer to the documentation ("E-mail settings") for more details.           ##
+##                                                                            ##
+## It is recommended to use a valid sender address that passes access         ##
+## validation and spam filtering in mail servers.                             ##
 ################################################################################
-#email_to = admin at localhost
-#error_email_from = paste_error at localhost
-#app_email_from = kallithea-noreply at localhost
+
+## 'From' header for application e-mails. You can optionally add a name.
+## Default:
+#app_email_from = Kallithea
+## Examples:
+#app_email_from = Kallithea <kallithea-noreply at example.com>
+#app_email_from = kallithea-noreply at example.com
+
+## Subject prefix for application e-mails.
+## A space between this prefix and the real subject is automatically added.
+## Default:
+#email_prefix =
+## Example:
 #email_prefix = [Kallithea]
 
+## Recipients for error e-mails and fallback recipients of application mails.
+## Multiple addresses can be specified, space-separated.
+## Only addresses are allowed, do not add any name part.
+## Default:
+#email_to =
+## Examples:
+#email_to = admin at example.com
+#email_to = admin at example.com another_admin at example.com
+
+## 'From' header for error e-mails. You can optionally add a name.
+## Default:
+#error_email_from = pylons at yourapp.com
+## Examples:
+#error_email_from = Kallithea Errors <kallithea-noreply at example.com>
+#error_email_from = paste_error at example.com
+
+## SMTP server settings
+## Only smtp_server is mandatory. All other settings take the specified default
+## values.
 #smtp_server = mail.server.com
 #smtp_username =
 #smtp_password =
-#smtp_port =
+#smtp_port = 25
 #smtp_use_tls = false
 #smtp_use_ssl = false
-## Specify available auth parameters here (e.g. LOGIN PLAIN CRAM-MD5, etc.)
+## SMTP authentication parameters to use (e.g. LOGIN PLAIN CRAM-MD5, etc.).
+## If empty, use any of the authentication parameters supported by the server.
 #smtp_auth =
 
 [server:main]


More information about the kallithea-general mailing list