Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding=utf-8
- """ Create iso-2022-jp email message """
- import json
- from email.mime.text import MIMEText
- from email.utils import formatdate, formataddr, parseaddr
- from email.header import Header
- COMMASPACE = ', '
- def encode_name_part(name_and_addr):
- """ encode name part with iso-2022-jp """
- name, addr = parseaddr(name_and_addr)
- return formataddr((str(Header(name.encode('iso-2022-jp'), 'iso-2022-jp')), addr))
- def create_message(email):
- """ create message to send iso-2022-jp email """
- msg = MIMEText(email["Body"].encode('iso-2022-jp'), 'plain', 'iso-2022-jp')
- msg['Date'] = formatdate()
- msg['Subject'] = Header(email["Subject"].encode('iso-2022-jp'), 'iso-2022-jp')
- msg['From'] = encode_name_part(email["From"])
- for item in ["To", "Cc", "Bcc"]:
- if email.has_key(item) and len(email[item]) != 0:
- msg[item] = COMMASPACE.join(map(encode_name_part, email[item]))
- return msg
- if __name__ == "__main__":
- JSON_STRING = r'''
- {
- "From": "わたし <me@example.jp>",
- "Subject": "さぶじぇくと",
- "To": [
- "なまえ <user@example.jp>"
- ],
- "Cc": [
- ],
- "Bcc": [
- ],
- "Body": "本文です。\n文字化けしていませんか?"
- }
- '''
- def print_message():
- """ print test message """
- params = json.loads(JSON_STRING)
- print create_message(params)
- print_message()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement