我只是很想知道MIMEMultipart是否有任何属性,我可以通过我的电子邮件正文部分...只有我想出的部分是
msg = MIMEMultipart()
msg["From"] = emailfrom
msg["To"] = emailto
msg["Subject"] = "hi find the attached file"
msg.preamble = "please PFA"
Run Code Online (Sandbox Code Playgroud)
有蚂蚁之类的东西吗?
msg["Body"] = I will add a string or a text file
Run Code Online (Sandbox Code Playgroud)
我用Google搜索并找到了
body = MIMEMultipart('alternative')
body.attach(MIMEText(text))
Run Code Online (Sandbox Code Playgroud)
但不适用于我的情况.还有一件事,MIMEMultipart('替代')这个部分是如何工作或运作的.
请建议.
Nob*_*lis 11
这对我有用:
msg = MIMEMultipart()
msg['From'], msg['To'], msg['Subject'] = ... # specify your sender, receiver, subject attributes
body = 'This is the body of the email.'
body = MIMEText(body) # convert the body to a MIME compatible string
msg.attach(body) # attach it to your main message
Run Code Online (Sandbox Code Playgroud)
您将附加body到msg,并body在你的情况应该是MIMEText对象.
tri*_*eee 11
多部分容器的目的是包含其他MIME部分.如果你只有一个部分,根据定义,它不是多部分.
multipart/alternative在不同的渲染中具有相同的内容时非常有用.一个常见的情况是在两者中都有消息体text/plain(没有字体,颜色,图像或其他"丰富"内容)和text/html.通常,用户将他的客户端配置为优先于另一个,因此它将显示用户喜欢的任何内容.不太常见的是,用户具有可以显示一种类型而不显示另一种类型的客户端,因此显示支持的版本是技术必要性而非用户偏好的问题.
multipart/related当您有多个部分构成一条消息时很有用.例如,text/html在部分multipart/alternative可能要在其中为"相关"部分提供的图像来拉.所以一个共同的结构实际上是
multipart/alternative
+---- text/plain
+---- multipart/related
+---- text/html
+---- image/png
+---- image/png
Run Code Online (Sandbox Code Playgroud)
或者甚至是multipart/related上面的另一个,如果有一个独立于multipart/alternative效果图的附件.
对于您的具体示例,只需将body部分声明为text/plain:
msg = MIMEText(text)
msg["From"] = emailfrom
msg["To"] = emailto
msg["Subject"] = "hi find the attached file"
Run Code Online (Sandbox Code Playgroud)
对于它的价值,您通常不需要弄乱MIME前导码,或者想象客户端会显示它.(当有多个部分时,只会有一个序言.)
如果您确实要包含实际附件,那么:
msg = MIMEMultipart()
msg["From"] = emailfrom
msg["To"] = emailto
msg["Subject"] = "hi find the attached file"
msg.attach(MIMEText(text))
attachment = MIMEBase('application', 'octet-stream')
attachment.set_payload(data)
msg.attach(attachment)
Run Code Online (Sandbox Code Playgroud)