Python中发邮件(明文/SSL/TLS三种方式)

#!/usr/bin/python
#  coding:utf-8 
import smtplib
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email.Header import Header
import sys

#设置默认字符集为UTF8 不然有些时候转码会出问题
default_encoding = 'utf-8'
if sys.getdefaultencoding() != default_encoding:
    reload(sys)
    sys.setdefaultencoding(default_encoding)
 
#发送邮件的相关信息,根据你实际情况填写
smtpHost = 'smtp.126.com'
smtpPort = '25'
sslPort  = '587'
fromMail = 'zhangsan@126.com'
toMail   = 'funame@126.com'
username = 'zhangsan'
password = '123456'
  
#邮件标题和内容
subject  = u'[Notice]hello'
body     = u'hello,this is a mail from ' + fromMail

#初始化邮件
encoding = 'utf-8'
mail = MIMEText(body.encode(encoding),'plain',encoding)
mail['Subject'] = Header(subject,encoding)
mail['From'] = fromMail
mail['To'] = toMail
mail['Date'] = formatdate()

try:
    #连接smtp服务器,明文/SSL/TLS三种方式,根据你使用的SMTP支持情况选择一种
    #普通方式,通信过程不加密
    smtp = smtplib.SMTP(smtpHost,smtpPort)
    smtp.ehlo()
    smtp.login(username,password)

    #tls加密方式,通信过程加密,邮件数据安全,使用正常的smtp端口
    #smtp = smtplib.SMTP(smtpHost,smtpPort)
    #smtp.set_debuglevel(True)
    #smtp.ehlo()
    #smtp.starttls()
    #smtp.ehlo()
    #smtp.login(username,password)

    #纯粹的ssl加密方式,通信过程加密,邮件数据安全
    #smtp = smtplib.SMTP_SSL(smtpHost,sslPort)
    #smtp.ehlo()
    #smtp.login(username,password)

    #发送邮件
    smtp.sendmail(fromMail,toMail,mail.as_string())
    smtp.close()
    print 'OK'
except Exception as e:
    print e


转载于:http://www.litvip.com/572/

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为AI语言模型,我无法执行实际的代码操作,下面是一份Python的POP3收邮件的示例代码,你可以参考使用: ```python import poplib # 邮箱信息 email = 'your_email@example.com' password = 'your_password' pop3_server = 'pop.example.com' # 连接POP3服务器 server = poplib.POP3(pop3_server) # 打印POP3服务器欢迎信息 print(server.getwelcome()) # 验证邮箱账号和密码 server.user(email) server.pass_(password) # 打印邮箱中的邮件总数和占用空间 email_count, email_size = server.stat() print('邮箱中共有邮件 {} 封,占用空间 {} 字节'.format(email_count, email_size)) # 打印最新的一封邮件 resp, mails, octets = server.list() latest_email_index = len(mails) resp, lines, octets = server.retr(latest_email_index) email_content = b'\r\n'.join(lines).decode('utf-8') print(email_content) # 关闭连接 server.quit() ``` 上述代码的执行步骤如下: 1. 导入 `poplib` 模块。 2. 设置邮箱信息,包括邮箱地址、密码和POP3服务器地址。 3. 使用 `poplib.POP3()` 函数连接到POP3服务器。 4. 打印POP3服务器的欢迎信息。 5. 使用 `server.user()` 和 `server.pass_()` 验证邮箱账号和密码。 6. 使用 `server.stat()` 函数获取邮箱中的邮件总数和占用空间。 7. 使用 `server.list()` 函数获取邮件列表,并使用 `server.retr()` 函数获取最新的一封邮件。 8. 打印最新的一封邮件的内容。 9. 使用 `server.quit()` 函数关闭连接。 需要注意的是,POP3协议是明文传输的,因此在使用POP3收邮件时需要注意安全问题。建议使用SSLTLS等加密协议来保证邮件传输的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值