邮件

邮件相关协议及JavaMail 包简介

ぃ、小莉子 提交于 2020-01-23 18:31:00
1. 邮件服务器 按功能划分,邮件服务器可以划分为两种类型: SMTP邮件服务器:用于替用户发送邮件和接收外面发送给本地用户的邮件,相当于现实生活中邮局的邮件接收部门(可接收普通用户要投出的邮件和其他邮局投递进来的邮件)。 POP3/IMAP邮件服务器:用于帮助用户读取SMTP邮件服务器接收进来的邮件,相当于邮局里专门为前来取包裹的用户提供服务的部门。 2. 邮件发送和接收过程 163邮箱用户发送电子邮件到qq邮箱用户的过程如图所示,现解释如下: 163邮箱用户A编辑并发送电子邮件,交到163的邮箱服务器,这一步使用的是SMTP协议。 163邮箱根据用户A发送的邮件进行解析,判断收件地址如果为163邮箱,则存放到163邮箱存储空间;判断为其他邮箱,则将邮件转发到其他邮箱的服务器,转发使用的也是SMTP协议。 qq邮箱接收到163邮箱转发来的邮件,会进行判断收件地址是否是qq邮箱,如果是,则将邮箱存放于qq邮箱存储空间。 用户B登陆qq邮箱,与163的POP3/IMAP服务器建立网络连接,查找未读邮件,会通过客户端向163邮箱服务器发送请求。 163邮箱服务器接收到用户B发送的请求后,会去存储空间取出用户B未收取的邮件。 服务器取出邮件,将邮件发送给用户B,用户B是通过POP3或IMAP协议读取邮箱中的邮件的。 3. 电子邮件传输协议 电子邮件需要在邮件客户端和邮件服务器之间

springCloud实现邮件发送

眉间皱痕 提交于 2020-01-21 05:15:13
在现有项目中有使用到邮件服务,所有在空闲之余,将邮件模块独立出来。 需要pom对邮件的jar依赖。 < ! -- 邮件发送 -- > < dependency > < groupId > org . springframework . boot < / groupId > < artifactId > spring - boot - starter - mail < / artifactId > < / dependency > 邮件的发送发配置,这一块的配置根据实际情况可独立写到一个单独的配置文件上mail.yml,后期方便维护配置 spring : mail : host : 你的邮件服务 username : 发送方的邮箱 password : 邮箱的授权密码 port : 465 # 这个端口根据实际情况配置,一般都是 465 protocol : smtp # 这里应该是不用改的,我没试过其他的配置 test - connection : false default - encoding : UTF - 8 properties : mail : debug : true smtp : auth : true connectiontimeout : 10000 timeout : 10000 writetimeout : 10000 socketFactory :

python 邮件发送

↘锁芯ラ 提交于 2020-01-19 00:57:42
import smtplib from email.mime.text import MIMEText mailserver = "smtp.163.com" #邮箱服务器地址 username_send = 'aaa@163.com' #邮箱用户名 password = '*' #邮箱密码:需要使用授权码 username_recv = 'aaa@qq.com' #收件人,多个收件人用逗号隔开 mail = MIMEText('邮件内容') mail['Subject'] = '邮件主题' mail['From'] = username_send #发件人 mail['To'] = username_recv #收件人; smtp = smtplib.SMTP(mailserver,port=25) # 普通邮件 # smtp=smtplib.SMTP_SSL('smtp.qq.com',port=465) #加密邮件 smtp.login(username_send,password) #登录邮箱 smtp.sendmail(username_send,username_recv,mail.as_string())# 参数分别是发送者,接收者,第三个是把上面的发送邮件的内容变成字符串 smtp.quit() # 发送完毕后退出smtp print ('发送成功') 来源:

ubuntu配置外部smpt email 发送外网

蓝咒 提交于 2020-01-16 15:32:48
添加heirloom-mailx apt源 cat /etc/apt/sources.list.d/mailx.list deb http://cz.archive.ubuntu.com/ubuntu xenial main universe 更新apt apt update 安装heirloom-mailx apt install heirloom-mailx -y 配置外部发件邮箱 编辑 /etc/s-nail.rc在最后加上: for 163邮箱 set from="xxxxx@163.com" #发件地址 set smtp="smtps://smtp.163.com:465" #smtp服务器 set smtp-auth-user="xxxxxx@163.com" #登录发件地址 set smtp-auth-password="xxxx" #明文密码 set smtp-auth=login #登录方式,默认是login,也可以改成CRAM-MD5或PLAIN方式 for outlook set from="xxxx@outlook.com" set smtp="outlook.office365.com:587" set smtp-auth-user="xxxx@outlook.com" set smtp-auth-password="xxxx" #明文密码 set

python发不了邮件

﹥>﹥吖頭↗ 提交于 2020-01-15 16:47:40
我上一位运维,脚本完全没问题但是使用的是阿里云机器,阿里默认禁止25端口往外发,脚本用的就是25号端口, 所以每次到发邮件的时候就报错,检查脚本也没问题,各种百度看见阿里禁了25号端口,经过修改成465端口成功 可以发送邮件。 来源: 51CTO 作者: kong2432 链接: https://blog.51cto.com/14174084/2467035

python3实现邮件发送程序

扶醉桌前 提交于 2020-01-14 05:41:53
刚开始的想法很简单,由于有上千封的邮件需要发出去,并且需要一条一条发送,不能转发或群发,每条邮件要署对方的姓名,并加上几个相同的符件,考虑到手工操作繁琐无趣,所以想到用程序实现,python好像非常胜任。邮件人在excel表中,因此,首先考虑的就是读取excel表,最好的办法就是直接修改excel表每条记录,表示此条记录已经发送成功,可惜我用的是xlrd,只能读,不能写,只好再调用ini的方法,这样就完成了读取数据,根据ini数据决定是否发送邮件,修改ini中数据状态。嗯,大致情形就是这样。 然后就要研究怎么发送邮件,用邮件协议smtp即可,可惜国内邮箱商都太过厉害,第一次发的邮件一下就成功了,再来一次就退信了,研究了163的就是这种情况,QQ的则一直没发送成功,然后就测试hotmail的,居然成功了,只是太慢太慢,发一封要1分多钟,真不知要发到何时。稍后将代码片断上传。 来源: https://www.cnblogs.com/luhouxiang/p/4921697.html

使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题

喜夏-厌秋 提交于 2020-01-14 05:15:58
近期,线上项目发出邮件是PDF附件但收到的邮件附件格式却不是PDF,发送邮件的技术为JAVA mail 经复现错误现象为下图: 163邮箱: QQ邮箱: eml问题排查思路: 1.首先,排除附件本身的问题,附件本身在执行发送邮件之前进行本地服务器文件落地,确认落地的文件确实为PDF格式且附件正常可用。 2.其次,排查公司用的邮件服务器问题是不是对PDF文件进行了某种转码,经验证通过从邮件服务器手动发送邮件,确认收到后的邮件附件正常为PDF格式。 3.最后,跟踪发送邮件的代码并在网上查询相关资料未发现任何和.eml有关的材料,通过在一篇博客中查看正确实例发现在Java mail中正文和附件使用的是一个MimeBodyPart对象,修改后示例如下: 经测试错误原因是邮件正文和邮件附件用的MimeBodyPart对象是同一个,进而导致上述现象,解决办法为正文是一个MimeBodyPart对象,一个附件是一个MimeBodyPart对象,并将两个对象分别添加到MimeMultipart() 中,经再次测试,问题解决。 .bin问题解决 我在项目中遇到的问题并不是.bin问题,不过网络上有一些关于这个的资料,在本篇帖子中做个记录。 .bin问题的原因为附件名过长导致附件名编码异常,要做几处更改,如下: 问题修复后样图: QQ邮箱 163邮箱 总结:

Appium+python 自动发送邮件(1)

孤人 提交于 2020-01-13 09:34:47
SMTP:简单传输协议,实在Internet上传输Email的事实标准。 Python的smtplib模块提供了一种很方便的途径来发送电子邮件,它对SMTP协议进行了简单的封装。 python中发送邮件除了SMTP模块外,还需用到email模块。email模块主要用来定义邮件的标题、正文、附件。 一、SMTP的方法 1、SMTP模块的方法 connect(host,port) host:指定连接的邮箱服务器 port:指定连接服务器的端口号 login(user,passwork) user:登陆邮箱用户名 password:登陆邮箱密码 sendmail(from_addr,to_addrs,msg,...) from_addr:邮件发送者地址 to_addrs:收件人,字符串列表 msg:发送的消息 quit()方法:结束SMTP会话 2、email模块的方法 email.mime.text.MIMEText() 用来定义邮件正文 email.header.Header() 用来定义邮件标题 email.mime.multipart.MIMEMultipart() 定义邮件附件 二、自动发送HTML邮 件 # coding:utf-8 import unittest, time,smtplib from email.mime.text import MIMEText from