我正在使用名为django-mailbox(http://django-mailbox.readthedocs.org/en/latest/index.html)的django应用程序,其目的是使用电子邮件。
该应用会创建一个“消息”模型,如下所示:
u'django_mailbox.message': {
'Meta': {'object_name': 'Message'},
'body': ('django.db.models.fields.TextField', [], {}),
'encoded': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'from_header': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'in_reply_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'replies'", 'null': 'True', 'to': u"orm['django_mailbox.Message']"}),
'mailbox': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'messages'", 'to': u"orm['django_mailbox.Mailbox']"}),
'message_id': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'outgoing': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'processed': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'read': ('django.db.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}),
'subject': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
'to_header': ('django.db.models.fields.TextField', [], {})
我正在尝试从各种邮件中提取电子邮件文本。在我使用数据库API运行以下内容:
>>> from django_mailbox.models import Message
>>> o = Message.objects.filter(in_reply_to_id__gt=0)
>>> n = o.values('body')
>>> n
[{'body': u'RGVsaXZlcmVkLVRvOiByb2JiaW5zYWxpc0BnbWFpbC5jb20KUmVjZWl2.......
显然身体是以某种方式编码的。如何解码并查找电子邮件中的实际文本?
答案 0 :(得分:2)
根据文件:
电子邮件正文在存储在数据库中时进行了base-64编码。
因此,您可以通过base64
模块中的base64.b64decode
来获取消息内容。
到目前为止您提到的电子邮件文本是:
>>> s = "RGVsaXZlcmVkLVRvOiByb2JiaW5zYWxpc0BnbWFpbC5jb20KUmVjZWl2"
>>> import base64
>>> base64.b64decode(s)
'Delivered-To: <some email address>\nReceiv'
我已从已解码的输出中删除了电子邮件地址,因此它未包含在搜索结果中。