我使用变量接收者和主题来存储相对值。只需将单引号之间的示例文本替换为实际值。在recipient = 'emailaddress'
subject = 'mysubject'
主题字段不能包含空格,因此必须使用%20 ASCII代码对它们进行url编码
^{pr2}$
上面的函数将空白替换为“%20”,并将修改后的subject赋给同一个变量,因为您可以重用它,在这种情况下您不需要另一个。在
也可以使用urllib模块进行url编码(请参见urllib.urlencode()方法),但只需使用replace()方法即可完成此操作,因此您可以避免为此而导入其他模块。在
现在需要从文本文件加载文本并将其存储在变量中。
假设您有一个名为正文.txt:with open('body.txt', 'r') as b:
body = b.read()
请注意,我假设正文.txt位于Python脚本的同一目录中,否则必须在filename参数中包含文件的完整绝对或相对路径,后跟文件名。在
我使用了open()函数,并提供了两个参数:第一个参数是文件名,第二个参数是打开文件所用的模式。您想读取文件,因此必须在读取模式下打开文件('r')。打开文件后,您需要能够使用变量标识该文件,以便对其执行某些操作。这类变量在技术上称为handle,在本例中,我将其称为b。在
现在要阅读所有文本,可以使用b.read(),然后可以将其赋给变量body。(如果你想逐行阅读,你可以这样做:b.readline(),但在这种情况下你不想这样做。)
请注意,我使用了with语句,这是打开和处理文件的首选方法,因为它会在文件末尾自动关闭文件,否则您将不得不手动关闭。在和可用之前,您必须执行以下操作:b = open('body.txt', 'r'):
body = b.read()
b.close()
现在最好对变量body中包含的字符串进行url编码,因此我们对主题执行相同的操作:body = body.replace(' ', '%20')
到目前为止,你可以使用webbing>参数来连接数据。在webbrowser.open('mailto:?to=' + recipient + '&subject=' + subject + '&body=' + body, new=1)
显然,在使用之前,您还需要导入webbrowser模块。
为了清晰起见,我将重写整个程序,不加注释:import webbrowser
recipient = 'emailaddress'
subject = 'mysubject'
with open('body.txt', 'r') as b:
body = b.read()
body = body.replace(' ', '%20')
webbrowser.open('mailto:?to=' + recipient + '&subject=' + subject + '&body=' + body, new=1)