修改python原文件中的from、to字段


1down votefavorite

1


Here‘s an excerpt from the code I‘m using. I‘m looping through the part that adds the email; my problem is rather than changing the "to" field on each loop, it is appending the "to" data. Obviously this causes some issues, since the to field ends up getting longer and longer. I tried msgRoot.del_param(‘To‘) to no avail. I even tried setting the msgRoot[‘To‘] to refer to the first index of a list so I could simply change the value of that list item (also didn‘t work).

from email.MIMEMultipart import MIMEMultipart
msgRoot = MIMEMultipart(‘related‘)
msgRoot[‘To‘] = ‘[email protected]‘

You can use the replace_header method.

replace_header(_name, _value)

Replace a header. Replace the first header found in the message that matches _name, retaining header order and field name case. If no matching header was found, a KeyError is raised.

New in version 2.2.2.

For example,

if msgRoot.has_key(‘to‘):
    msgRoot.replace_header(‘to‘, someAdress)else:
    msgRoot[‘to‘] = ‘[email protected]‘

Thank you, that worked perfectly! – Dan Apr 24 ‘11 at 14:26


in Python 3.5 I had to use if ‘to‘ in message: because has_key has been deprecated. – Tom SitterJun 8 ‘16 at 21:17


Python 3 changed dict syntax. See docs.python.org/3/whatsnew/3.0.html#builtins "Removed. dict.has_key() – use the in operator instead." – gimel Jun 9 ‘16 at 5:31

原文:

https://stackoverflow.com/questions/5770951/python-how-can-i-change-the-to-field-in-smtp-mime-script-rather-than-adding-a

时间: 2024-10-08 16:11:25

修改python原文件中的from、to字段的相关文章

NS前缀\OC中的注释\访问OC原文件、C原文件中的函数

///////////////////////////////////////// //////////////////////////////////////// NS前缀 NS来自于NeXTStep的一个软件 NeXT Software OC中不支持命名空间(namespace) NS是为了避免命名冲突而给的前缀 看到NS前缀就知道是Cocoa中的系统类的名称 "@"的使用方法 1.@""这个符号表示将C中的字符串转化为OC中的字符串对象 2.@符号 OC中的大

python把文件中的邮箱分类 保存到相应的文件里面

python把文件中的邮箱分类 保存到相应的文件里面(测试数据100W数据时间10秒) #coding:utf-8 import time import linecache def readfile(file):     #读取数据     list_dict = {}     file_data =  [ x.replace('\n','') for x in linecache.getlines(file) if '@' in x ]     #把后缀名组成字典中的keys,按照要求把文件中

Python工程文件中的名词解释---Module与Package的区别

当我们在已有的Python工程文件中创建新的内容是,通常会有两种类型文件供你选择---Module和Package,对于初学者来说会搞不清楚这两种文件直接的关系.这里就来解释一下这两者之间的关系. Module简介:  中文翻译成"模块",所谓的模块其实就是能够独立的完成一组任务的代码集.在Python里面Module一般就是一个独立的.py文件(有时候也可能是多个). Package简介:  中文翻译成"包",在Python中,Package就相当于多个Modul

Python 同一文件中,有unittest不执行“if __name__ == '__main__”,不生成HTMLTestRunner测试报告的解决方案

1.问题:Python中同一个.py文件中同时用unittest框架和HtmlReport框架后,HtmlReport不被执行. 2.为什么?其实不是HtmlReport不被执行,也不是HtmlReport不生成测试报告,是因为if __name__ == '__main__'中的代码根本没执行好嘛! 3.解决方案的来源:因为最开始我的main代码中没有写print打印语句.没有生成HTML报告,我也在网上找了很久的方法,后来才怀疑是不是没有运行main方法,于是写了个print语句,果然没有运

linux查找特定类型的文件中是否包含特定字段

shell是个好东西,极大的方便了查询工作,之前遇到一个问题,查询包含有特定字段的特定文件,经过查询,命令如下: 1 find . -type f -name '*.cpp' print|xargs grep -r '#include' -l 上述命令的意思是查询包含有 '#include' 字符的 cpp文件,并给出文件名列表.具体需要熟悉find 和grep命令和各个参数的意思. 参考链接:http://blog.sina.com.cn/s/blog_691a84f301015khx.htm

python对文件中的关键词查找替换,实现自动获取配置

1.目的 想对update_variable.py文件中的配置进行修改,数据通过系统接口自动获取 update_variable.py my_name='null' my_age=18 2.代码 update_file.py # name=phyger # line='my name: {name}' # new=line.replace('{name}',name) # print(new) # cur_abspath=os.path.abspath(__file__) import os c

利用Python从文件中读取字符串(解决乱码问题)

首先声明这篇学习记录是基于python3的. python3中,py文件中默认的文件编码就是unicode,不用像python2中那样加u,比如u'中文'. 不过在涉及路径时,比如C:\Users\Administrator\Desktop\StudyNote\Python,还是要加r. eg:r'C:\Users\Administrator\Desktop\StudyNote\Python'. 因为\是转义符,想输出'\'得写成'\\'才可以.加了r就可以让python自动处理字符串,最终的字

Python 从文件中筛选出ip 正则表达(re)

#!/usr/bin/env python #_*_coding:utf-8 _*_ __author__ = 'gaogd' import  re with open('arr.txt','r') as f:     for line in f.readlines():         result2 = re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}', line)         if not result2  == [

修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法

1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接别名修改后,那么你PLSQL登录数据库时也要选择对应的连接别名: