japanese email subject encoding

后端 未结 9 1554
天命终不由人
天命终不由人 2020-12-15 08:02

Aparently, encoding japanese emails is somewhat challenging, which I am slowly discovering myself. In case there are any experts (even those with limited experience will do)

9条回答
  •  星月不相逢
    2020-12-15 08:41

    something like this should get the job done in python:

    
    #!/usr/bin/python                                                                                                            
    # -*- mode: python; coding: utf-8 -*-                                                                                        
    import smtplib
    from email.MIMEText import MIMEText
    from email.Header import Header
    from email.Utils import formatdate
    
    def send_from_gmail( from_addr, to_addr, subject, body, password, encoding="iso-2022-jp" ):
    
        msg = MIMEText(body.encode(encoding), 'plain', encoding)
        msg['Subject'] = Header(subject.encode(encoding), encoding)
        msg['From'] = from_addr
        msg['To'] = to_addr
        msg['Date'] = formatdate()
    
        s = smtplib.SMTP('smtp.gmail.com', 587)
        s.ehlo(); s.starttls(); s.ehlo()
    
        s.login(from_addr, password)
        s.sendmail(from_addr, to_addr, msg.as_string())
        s.close()
        return "Sent mail to: %s" % to_addr
    
    
    
    if __name__ == "__main__":
        import sys
        for n,item in enumerate(sys.argv):
            sys.argv[n] = sys.argv[n].decode("utf8")
    
        if len(sys.argv)==6:
            print send_from_gmail( sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5] )
        elif len(sys.argv)==7:
            print send_from_gmail( sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5], encoding=sys.argv[6] )
        else:
            raise "SYNTAX: %s      [encoding]"
    
    

    **blatantly stolen/adapted from:

    http://mtokyo.blog9.fc2.com/blog-entry-127.html

提交回复
热议问题