我是python的新手,遇到了问题。 我想将一个函数附加到smtp消息的主体。 函数返回信息的结果,我需要这些结果在我的身体信息中,以便其他人可以在收到电子邮件时看到它,不知道该怎么做。
对这个新手的任何帮助都会很棒!!
这是我的代码:
import smtplib
# For guessing MIME type
import mimetypes
# Import the email modules we'll need
import email
import email.mime.application
# Create a text/plain message
msg = email.mime.Multipart.MIMEMultipart()
msg['Subject'] = 'Greetings'
msg['From'] = 'test1@mail.com'
msg['To'] = 'test2@mail.com'
# The main body is just another attachment
body = email.mime.Text.MIMEText("""Hello, how are you? I am fine.
This is a rather nice letter, don't you think?""")
msg.attach(body)
# send via Gmail server
# NOTE: my ISP, Centurylink, seems to be automatically rewriting
# port 25 packets to be port 587 and it is trashing port 587 packets.
# So, I use the default port 25, but I authenticate.
s = smtplib.SMTP('localhost', 25)
s.starttls()
s.login(username, password)
s.sendmail('To', 'From', msg.as_string())
s.quit()
if len(argument1) > 0:
startThebootstrap.function (argument1, t.argument2 ())
当前正文仅接受文本,我想更改此内容以获取函数结果。 这可能吗?
我使用argsparse命令我想要的部分,结果出现在CMD上,我希望这些结果在我的电子邮件中。
我有一个开始显示结果的命令。
答案 0 :(得分:0)
<强> 1。您想发送一些python对象(函数参数或结果)
一般的方法是使用“序列化器”来对字符串创建对象(而不是函数)。
import pickle # pickle is not a save serializer. you can build virusses with it.
string = pickle.dumps(object) # string can be attached to the email.
object = pickle.loads(string)
pickle可以传输病毒和功能,但这两个不能:
import json
string = json.dumps(object).encode('utf-8') # string can be attached to the email.
object = json.loads(string.decode('utf-8'))
import ast
string = repr(["smile!"])
object = ast.literal_eval(string)
<强> 2。您想发送函数的源代码
import linecache
def function():
return 5
source_lines = inspect.getsourcelines(function)[0]
source_code = ''.join(source_lines) # make the list to a string
现在您可以将source_code
添加到邮件正文中。
请告诉我您对此的看法以及您是否理解。