如何在不启用“不安全访问“的情况下通过 gmail 发送电子邮件?

在Python中,使用`smtplib`库和`email`模块来发送电子邮件是一种常见的方法,尤其是对于需要使用安全连接(如SSL)发送邮件的情况。虽然大多数情况下启用“不安全访问”选项可能不是最佳实践,但在某些特殊的情况下,例如与一个不支持安全的邮箱服务集成时,可能需要这样做。

以下是一个基本的步骤和代码示例,展示如何不使用“不安全访问”的电子邮件服务器发送带有附件的HTML邮件:

```python
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

# 设置SMTP服务器地址、端口号和登录信息(如果需要的话)
smtp_server = "smtp.example.com"
smtp_port = 587  # 默认的SMTP端口是587,用于非SSL连接
username = "your-email@example.com"
password = "your-password"

# 创建邮件对象
message = MIMEMultipart()
message["From"] = username
message["To"] = "recipient@example.com"
message["Subject"] = "Test Subject"

# 添加正文内容(HTML格式)
html_content = """\
<html>
  <body>
    <p>你好,世界!</p>
    <img src="cid:image1">
  </body>
</html>
"""
message.attach(MIMEText(html_content, "html"))

# 添加附件(图片)
with open("path/to/your/image.jpg", "rb") as attachment:
    part = MIMEBase("application", "octet-stream")
    part.set_payload(attachment.read())
encoders.encode_base64(part)
part.add_header("Content-Disposition", f"attachment; filename=image1.jpg", 'Content-ID' <"image1">)
message.attach(part)

# 连接到SMTP服务器并发送邮件
with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()  # 启用TLS加密
    server.login(username, password)
    server.sendmail(message["From"], message["To"], message.as_string())

print("邮件发送成功!")
```

在这个例子中,我们首先设置了SMTP服务器的地址、端口和登录信息。然后,我们创建了一个`MIMEMultipart`对象来构建邮件内容,包括正文(HTML格式)和一个附件(图片)。最后,我们连接到SMTP服务器并使用SSL加密连接发送邮件。

注意:在实际应用中,你应该确保你的SMTP服务器支持TLS或SSL加密连接,并且你有权限使用该服务器的用户名和密码登录。如果你的SMTP服务器不支持这些功能,那么可能需要寻找一个支持这些功能的替代服务。python

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潮易

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值