mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-07-30 18:27:45 -05:00
add support for configuring mail server character set per server. fixes #548
This commit is contained in:
@@ -8,6 +8,18 @@ class MailAccountAdmin(admin.ModelAdmin):
|
||||
|
||||
list_display = ("name", "imap_server", "username")
|
||||
|
||||
fieldsets = [
|
||||
(None, {
|
||||
'fields': ['name', 'imap_server', 'imap_port']
|
||||
}),
|
||||
(_("Authentication"), {
|
||||
'fields': ['imap_security', 'username', 'password']
|
||||
}),
|
||||
(_("Advanced settings"), {
|
||||
'fields': ['character_set']
|
||||
})
|
||||
]
|
||||
|
||||
|
||||
class MailRuleAdmin(admin.ModelAdmin):
|
||||
|
||||
|
@@ -200,8 +200,10 @@ class MailAccountHandler(LoggingMixin):
|
||||
f"{str(AND(**criterias))}")
|
||||
|
||||
try:
|
||||
messages = M.fetch(criteria=AND(**criterias),
|
||||
mark_seen=False, charset='UTF-8')
|
||||
messages = M.fetch(
|
||||
criteria=AND(**criterias),
|
||||
mark_seen=False,
|
||||
charset=rule.account.character_set)
|
||||
except Exception:
|
||||
raise MailError(
|
||||
f"Rule {rule}: Error while fetching folder {rule.folder}")
|
||||
|
28
src/paperless_mail/migrations/0008_auto_20210516_0940.py
Normal file
28
src/paperless_mail/migrations/0008_auto_20210516_0940.py
Normal file
@@ -0,0 +1,28 @@
|
||||
# Generated by Django 3.2.3 on 2021-05-16 09:40
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('paperless_mail', '0007_auto_20210106_0138'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='mailaccount',
|
||||
name='character_set',
|
||||
field=models.CharField(default='UTF-8', help_text="The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'.", max_length=256, verbose_name='character set'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='mailrule',
|
||||
name='action_parameter',
|
||||
field=models.CharField(blank=True, help_text='Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots.', max_length=256, null=True, verbose_name='action parameter'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='mailrule',
|
||||
name='folder',
|
||||
field=models.CharField(default='INBOX', help_text='Subfolders must be separated by dots.', max_length=256, verbose_name='folder'),
|
||||
),
|
||||
]
|
@@ -50,6 +50,14 @@ class MailAccount(models.Model):
|
||||
_("password"),
|
||||
max_length=256)
|
||||
|
||||
character_set = models.CharField(
|
||||
_("character set"),
|
||||
max_length=256,
|
||||
default="UTF-8",
|
||||
help_text=_("The character set to use when communicating with the "
|
||||
"mail server, such as 'UTF-8' or 'US-ASCII'.")
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
@@ -122,7 +130,9 @@ class MailRule(models.Model):
|
||||
|
||||
folder = models.CharField(
|
||||
_("folder"),
|
||||
default='INBOX', max_length=256)
|
||||
default='INBOX', max_length=256,
|
||||
help_text=_("Subfolders must be separated by dots.")
|
||||
)
|
||||
|
||||
filter_from = models.CharField(
|
||||
_("filter from"),
|
||||
@@ -166,7 +176,8 @@ class MailRule(models.Model):
|
||||
max_length=256, blank=True, null=True,
|
||||
help_text=_("Additional parameter for the action selected above, "
|
||||
"i.e., "
|
||||
"the target folder of the move to folder action.")
|
||||
"the target folder of the move to folder action. "
|
||||
"Subfolders must be separated by dots.")
|
||||
)
|
||||
|
||||
assign_title_from = models.PositiveIntegerField(
|
||||
|
Reference in New Issue
Block a user