| OLD | NEW |
| 1 # formmail | 1 # formmail |
| 2 | 2 |
| 3 The web handler that extracts form data from a POST request, uses it to | 3 The web handler that extracts form data from a POST request, uses it to |
| 4 populate an email template and then sends the produced email to a configured | 4 populate an email template and then sends the produced email to a configured |
| 5 list of addresses. | 5 list of addresses. |
| 6 | 6 |
| 7 ## Dependencies | 7 ## Dependencies |
| 8 | 8 |
| 9 * [Python 2.7](https://www.python.org/download/releases/2.7/) | 9 * [Python 2.7](https://www.python.org/download/releases/2.7/) |
| 10 * [Jinja2](http://jinja.pocoo.org/docs/2.10/intro/) | 10 * [Jinja2](http://jinja.pocoo.org/docs/2.10/intro/) |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 | 35 |
| 36 [formmail] | 36 [formmail] |
| 37 handler1.url = formmail/test/apply/submit | 37 handler1.url = formmail/test/apply/submit |
| 38 | 38 |
| 39 The CSV file into which all submissions will be saved (optional): | 39 The CSV file into which all submissions will be saved (optional): |
| 40 | 40 |
| 41 handler1.csv_log = /var/log/handler1-log.csv | 41 handler1.csv_log = /var/log/handler1-log.csv |
| 42 | 42 |
| 43 The Jinja2 template for the email. This is where the recipient email addresses | 43 The Jinja2 template for the email. This is where the recipient email addresses |
| 44 are entered. | 44 are entered. |
| 45 [(See an example email template here.)](formmail/test/template/test.mail) | 45 [(See an example email template here.)](test/template/test.mail) |
| 46 | 46 |
| 47 handler1.template = formmail/handler1/mail-template.tmpl | 47 handler1.template = formmail/handler1/mail-template.tmpl |
| 48 | 48 |
| 49 The `handler1.fields.xxx` subgroup includes the descriptions of the form | 49 The `handler1.fields.xxx` subgroup includes the descriptions of the form |
| 50 fields, and these must match the fields on the form. These are the fields | 50 fields, and these must match the fields on the form. These are the fields |
| 51 expected in the POST request and then made available to the template. Each | 51 expected in the POST request and then made available to the template. Each |
| 52 variable in the group defines a field and its value can be: | 52 variable in the group defines a field and its value can be: |
| 53 * "mandatory" (which makes the field mandatory) | 53 * "mandatory" (which makes the field mandatory) |
| 54 * and/or "email" (which makes the field an email) | 54 * and/or "email" (which makes the field an email) |
| 55 * or it can be empty (just a normal optional field). | 55 * or it can be empty (just a normal optional field). |
| 56 | 56 |
| 57 For mandatory fields we can also set "group-name.fields.field-name.mandatory" | 57 For mandatory fields we can also set "group-name.fields.field-name.mandatory" |
| 58 to override the error message that will be returned by the handler if the field | 58 to override the error message that will be returned by the handler if the field |
| 59 was empty. Likewise for email fields we can define | 59 was empty. Likewise for email fields we can define |
| 60 "group-name.fields.field-name.email" to set the error message that's returned | 60 "group-name.fields.field-name.email" to set the error message that's returned |
| 61 if the content of the field doesn't look like an email. See an example: | 61 if the content of the field doesn't look like an email. See an example: |
| 62 | 62 |
| 63 handler1.fields.email = mandatory, email | 63 handler1.fields.email = mandatory, email |
| 64 handler1.fields.email.mandatory = You failed the email test | 64 handler1.fields.email.mandatory = You failed the email test |
| 65 handler1.fields.email.email = You failed the email validation | 65 handler1.fields.email.email = You failed the email validation |
| 66 handler1.fields.non_mandatory_email = email | 66 handler1.fields.non_mandatory_email = email |
| 67 handler1.fields.non_mandatory_message = | 67 handler1.fields.non_mandatory_message = |
| 68 handler1.fields.mandatory = mandatory | 68 handler1.fields.mandatory = mandatory |
| OLD | NEW |