aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatěj Cepl <mcepl@cepl.eu>2022-12-02 08:37:54 +0100
committerMatěj Cepl <mcepl@cepl.eu>2023-05-25 10:56:30 +0200
commitfc5ec40e057df7b848aeac4cb821c981a1f3fb49 (patch)
tree73be72e9e02a7f126bf0b48000b10eb19128a2c2
parent53f97b330e7b0cdcc07e57aad06fd45c8a0f1e5d (diff)
downloadpygn-fc5ec40e057df7b848aeac4cb821c981a1f3fb49.tar.gz
New generation of email.message_from* methods could use better policy.
The email module changed a lot with more recent versions of Python (ehm, more recent, >= 3.3 ;)), and it uses per default old-compatible-with-Python 2 policy which is ASCII-based. The policy which is called default is not used per default [sic] and it is much better suited for UTF-8 world.
-rw-r--r--mail2news.py7
-rw-r--r--news2mail.py4
2 files changed, 7 insertions, 4 deletions
diff --git a/mail2news.py b/mail2news.py
index ced7897..6a7aaff 100644
--- a/mail2news.py
+++ b/mail2news.py
@@ -17,6 +17,7 @@ class mail2news is hopefully conform to rfc850.
import io
from collections import OrderedDict
import email
+import email.policy
import logging
import nntplib
import os
@@ -65,14 +66,14 @@ class mail2news(object):
msg[header] = value.strip()
def __readfile(self, opt):
- message = email.message_from_binary_file(sys.stdin.buffer)
+ message = email.message_from_file(sys.stdin, policy=email.policy.default)
if (len(message) == 0) \
and message.get_payload().startswith('/'):
msg_file_name = message.get_payload().strip()
del message
- with open(msg_file_name, 'rb') as msg_file:
- message = email.message_from_binary_file(msg_file)
+ with open(msg_file_name, 'r') as msg_file:
+ message = email.message_from_file(msg_file, policy=email.policy.default)
# introduce nntpheads
self.__add_header('Newsgroups', opt.newsgroup, message)
diff --git a/news2mail.py b/news2mail.py
index 624290f..a92c7e5 100644
--- a/news2mail.py
+++ b/news2mail.py
@@ -26,6 +26,7 @@ from __future__ import absolute_import
from __future__ import print_function
from collections import OrderedDict
import email
+import email.policy
import smtplib
from socket import gethostbyaddr, gethostname
import sys
@@ -52,7 +53,8 @@ class news2mail(object):
self.heads_dict = {}
self.article, self.headers, self.body = [], [], []
- self.message = self.__addheads(email.message_from_binary_file(sys.stdin.buffer))
+ self.message = self.__addheads(
+ email.message_from_file(sys.stdin, policy=email.policy.default))
def __addheads(self, msg):
"""add new header like X-Gateway: Received: