如何使用 Python 3.6 发送电子邮件附件

2024-01-08

你介意帮我一下吗? 我使用此页面中的所有代码如何使用Python发送电子邮件附件 https://stackoverflow.com/questions/3362600/how-to-send-email-attachments-with-python

但没有成功=(

这是我使用的最后一个版本

import smtplib
from smtplib import SMTP_SSL
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders
import os

filepath = 'D:/files/1.jpg'
fromaddr = "[email protected] /cdn-cgi/l/email-protection"
toaddr = "[email protected] /cdn-cgi/l/email-protection"
password = '********'
mail_adr = 'smtp.gmail.com'
mail_port = 587

# Compose attachment
part = MIMEBase('application', "octet-stream")
part.set_payload(open(filepath, "rb").read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', "attachment; filename= %s" % os.path.basename(filepath))

# Compose message
msg = MIMEMultipart()
msg['From'] = fromaddr
msg['To'] = toaddr
msg.attach(part)

# Send mail
smtp = SMTP_SSL()
smtp.set_debuglevel(1)
smtp.connect(mail_adr, mail_port)
smtp.login(fromaddr, password)
smtp.sendmail(fromaddr, toaddr, msg.as_string())
smtp.quit()

这是我犯的错误

connect: ('smtp.gmail.com', 587)
connect: ('smtp.gmail.com', 587)
Traceback (most recent call last):
  File "C:/Users/Oleg/Desktop/444.py", line 31, in <module>
    smtp.connect(mail_adr, mail_port)
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 335, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\smtplib.py", line 1037, in _get_socket
    server_hostname=self._host)
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 401, in wrap_socket
    _context=self, _session=session)
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 808, in __init__
    self.do_handshake()
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 1061, in do_handshake
    self._sslobj.do_handshake()
  File "C:\Users\Oleg\AppData\Local\Programs\Python\Python36-32\lib\ssl.py", line 683, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: UNKNOWN_PROTOCOL] unknown protocol (_ssl.c:749)

你有没有尝试过emailpy https://pypi.org/project/emailpy/? (我是作者)

它支持任何附件格式,除非您的电子邮件提供商限制它。

Example:

import emailpy
emailManager = emailpy.EmailManager('[email protected] /cdn-cgi/l/email-protection', 'youremailpassword') # this may take a few seconds to generate
emailManager.send(['[email protected] /cdn-cgi/l/email-protection', '[email protected] /cdn-cgi/l/email-protection'],  \
subject = 'Subject here', body = 'body text here', html = 'some html here', \
attachments = ['file1.png', 'file2.txt', 'file3.py'], \
nofileattach = {'file.txt': 'hi, this is some data'}) 
# send email to [email protected] /cdn-cgi/l/email-protection and [email protected] /cdn-cgi/l/email-protection with subject "Subject here"
#, body "body text here", html "some html here", and some attachments: 
# "file1.png", "file2.txt", "file3.py". Also, it adds a file called file.txt
# that has the contents "hi, this is some data"

emailpy 文档可以在其 PyPI 页面上下载,也可以从here https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL3UvcyFBbzNpSVRXZV9FWmdqSVVSWmJQdXpIRkliY2xCV3c_ZT1JNXNSamI/root/content

所有电子邮件服务器都已成功使用emailpy进行了测试,并且在python 3.x上使用emailpy不会出现任何错误(python 2中不支持emailpy,主要是因为语法)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Python 3.6 发送电子邮件附件 的相关文章

随机推荐

  • ASPNetCore MVC 路由让服务器处理特定路由

    这是之前未解决的问题的分叉question https stackoverflow com questions 44732729 asp net application interfering with remote host lets e
  • 跟踪 1 参数矩阵族的特征向量

    我的问题是这样的 我正在尝试通过 截断的 Karhunen Loeve 变换对随机过程进行谱分解 但我的协方差矩阵实际上是一个单参数矩阵族 我需要一种方法来估计 可视化如何我的随机过程取决于这个参数 为此 我需要一种方法来跟踪 numpy
  • .NET 中“调试”和“发布”构建之间的主要区别是什么? [复制]

    这个问题在这里已经有答案了 重复 NET 中的调试与发布 https stackoverflow com questions 90871 debug vs release in net 为什么 NET 应用程序的构建有 调试 和 发布 模式
  • 如何检测手机后退按钮是否被按下

    Please how can I detect if the back button is been pressed in a mobile phone as shown in the image below 我尝试使用在桌面上完成的正常方
  • 使用 Python 的 P2P RDP

    我想用 Python 编写一个简单的 P2P RDP 客户端和服务器 这就是我绘制草图的方式 短时间截屏 压缩它们并发送到服务器应用程序 从服务器应用程序获取键盘 鼠标事件 将它们序列化并发送给客户端 客户端将反序列化它们并使用 SendI
  • Android - Java 使用带有 DefaultHapiContext 的 HAPI v 2.2 解析 HL7 消息

    我在尝试解析 HL7 消息时收到此错误 我不知道为什么以及如何解决它 我正在使用 hapi v2 2 所以请帮助我 提前致谢 这是目录 08 28 15 03 28 552 E dalvikvm 642 Could not find cla
  • vue cli 项目中的 Favicon 未更改

  • 如果调用 http.Get(url) 时发生错误,我们是否需要关闭响应对象?

    在以下代码中 是否还需要在错误情况下关闭响应正文 res err http Get url if err nil log Printf Error s n err defer res Body Close 一般概念是 当一个函数 或方法 有
  • 无法实例化服务:ClassNotFoundException

    我读过大约一百个同一类别的问题 但没有一个有帮助 我有一个工作应用程序 然后重构了包名称 然后编译并运行 一周后 我回来处理它 并在启动时收到 ClassNotFoundException 更糟糕的是 如果我从存储库中签出之前的提交 在任何
  • Ember.js 中的“动态段”?

    在整个 Ember js 文档中 人们发现了这样一个概念 动态段提及在几个地方 https www google de search q site 3Aemberjs com 22dynamic segment 22 这是什么意思 使用适当
  • Swift 3 声音播放

    好吧 我已经研究过这个问题 并尝试了许多不同的方法来在单击按钮时播放声音 在 swift 3 中单击按钮时如何播放声音 我的声音位于名为 Sounds 的文件夹中 名称为 ClickSound mp3 该功能下的用户 MARK PLAY S
  • 在php中的目录中查找特定的文件类型,并在转换后将其发送到不同的目录

    我有一个目录 其中有一个mp4 file 也包括其他文件 我想转换成mp3然后将其发送到不同的目录 我用过以下命令行命令转换成mp3 它工作得很好 ffmpeg i 36031P mp4 map 0 2 ac 1 floor english
  • ICS 不更新组织者日历

    我正在编写一个应用程序 它将发送主要由 Outlook 解释的 ics 文件 当我的应用程序发送更新时 它将成功更新除组织者日历之外的每个人的日历 我使用相同的 UID 并且每次都会递增 SEQUENCE 我的 ICS 文件中是否还缺少其他
  • Oracle + JPA - 使用 INTERVAL 进行查询

    我的数据库表中有一个时间戳列 LASTUPDATED 我通过轮询来决定是否应更新某行 如果记录在过去 10 分钟内没有更新 我会更新它 我想将日期处理委托给数据库 但以下方法均无效 这个说 意外的标记 靠近 Query query enti
  • 如何在选择选项中使用复选框

    客户给了我一个设计 其中有一个选择选项菜单 其中包含一个复选框以及作为列表中单独项目的项目名称 是否可以在 选择选项 菜单中添加一个复选框 注意 开发人员需要添加自己的 id 才能使菜单生效 如果可能的话 我只需要 HTML CSS 代码
  • 为特定密码启用 TLS 1.2

    我们有一个 NET 应用程序调用仅允许 TLS 版本 1 2 的 API 服务器 2008 SP2 我们在服务器上运行以下脚本 Copyright 2016 Alexander Hass http www hass de content s
  • Google PHP 客户端不会验证代码,invalid_request

    我正在使用 Google PHP 客户端 4ae272683e18888362e1f935b813e345b99e23b8 该客户端于 8 月 9 日从 github 中提取 我觉得我的代码太简单了 不会出错 require once Go
  • Set 如何检查重复项? Java哈希集

    对于下面的代码 它输出 1 第二个代码输出 2 我不明白为什么会发生这种情况 是因为我添加了相同的对象吗 我应该如何实现所需的输出2 import java util public class maptest public static v
  • 自定义检查器将值恢复为 Unity 中 Play 上之前的值

    所以在我的游戏中我有一个需要平滑移动的对象Vector3 fromPosition to Vector3 toPosition高速float speed 然后返回到开始的地方 一切都非常简单 但是为了在设置关卡时尝试让生活变得更轻松 我决定
  • 如何使用 Python 3.6 发送电子邮件附件

    你介意帮我一下吗 我使用此页面中的所有代码如何使用Python发送电子邮件附件 https stackoverflow com questions 3362600 how to send email attachments with pyt