Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. # coding=utf-8
  2. """ Create iso-2022-jp email message """
  3.  
  4. import json
  5. from email.mime.text import MIMEText
  6. from email.utils import formatdate, formataddr, parseaddr
  7. from email.header import Header
  8.  
  9. COMMASPACE = ', '
  10.  
  11. def encode_name_part(name_and_addr):
  12. """ encode name part with iso-2022-jp """
  13. name, addr = parseaddr(name_and_addr)
  14. return formataddr((str(Header(name.encode('iso-2022-jp'), 'iso-2022-jp')), addr))
  15.  
  16. def create_message(email):
  17. """ create message to send iso-2022-jp email """
  18. msg = MIMEText(email["Body"].encode('iso-2022-jp'), 'plain', 'iso-2022-jp')
  19. msg['Date'] = formatdate()
  20. msg['Subject'] = Header(email["Subject"].encode('iso-2022-jp'), 'iso-2022-jp')
  21. msg['From'] = encode_name_part(email["From"])
  22.  
  23. for item in ["To", "Cc", "Bcc"]:
  24. if email.has_key(item) and len(email[item]) != 0:
  25. msg[item] = COMMASPACE.join(map(encode_name_part, email[item]))
  26.  
  27. return msg
  28.  
  29. if __name__ == "__main__":
  30. JSON_STRING = r'''
  31. {
  32. "From": "わたし <me@example.jp>",
  33. "Subject": "さぶじぇくと",
  34. "To": [
  35. "なまえ <user@example.jp>"
  36. ],
  37. "Cc": [
  38. ],
  39. "Bcc": [
  40. ],
  41. "Body": "本文です。\n文字化けしていませんか?"
  42. }
  43. '''
  44. def print_message():
  45. """ print test message """
  46. params = json.loads(JSON_STRING)
  47. print create_message(params)
  48.  
  49. print_message()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement