我使用变量
recipient和
subject来存储相关值。只需用实际值替换单引号之间的示例文本即可。请注意保留HTML标签。
recipient = 'emailaddress'
subject = 'mysubject'
主题字段不能包含空格,因此必须使用%20 ASCII代码进行url编码
subject = subject.replace(' ', '%20')
上述函数将空格替换为“%20”,并将修改后的主题分配给同一变量,因为您可以重复使用它,在这种情况下,您确实不需要另一个变量。可以使用urllib模块进行url编码(请参见urllib.urlencode()方法),但是可以使用replace()方法来简单地完成此操作,因此您可以避免为此导入另一个模块。
现在,您需要从文本文件中加载文本并将其存储在变量中。
假设您有一个名为body.txt的文本文件:
with open('body.txt', 'r') as b:
body = b.read()
请注意,我假定
body.txt 与你的Python脚本在同一个目录中,否则在文件名参数中你必须包含完整的绝对或相对路径,后跟文件名。
我使用了
open() 函数,并提供了2个参数:第一个是
文件名,第二个是你想要打开文件的
模式。你想读取文件,所以你必须以
读取模式(
'r')打开它。一旦你打开了文件,你需要能够用一个变量来识别文件,以便对其执行一些操作。这种变量在技术上被称为
句柄,在这种情况下我将其称为
b。
现在,要读取所有文本,你可以使用
b.read() 然后将其赋值给变量
body。(如果你想逐行读取,你会这样做:
b.readline(),但在这种情况下不需要。)
请注意,我使用了
with 语句,这是打开和处理文件的首选方式,因为它会在结束时自动关闭文件,否则你就必须手动关闭它。在有了
with之前,你需要像这样做:
b = open('body.txt', 'r'):
body = b.read()
b.close()
现在最好也对变量body中包含的字符串进行url编码,所以我们做与subject相同的事情:
body = body.replace(' ', '%20')
现在,是时候使用
webbrowser 模块,并将您得到的数据作为参数传递,将字符串连接起来。
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)
webbrowser.open()
的参数。有什么问题吗? - Barmar