精华内容
下载资源
问答
  • 模拟163邮箱,基于WEB的邮箱功能,包括件箱,件箱、草稿箱、通讯录、和写邮件
  • STMP、POP3实现收发邮件
  • C# 发邮件和POP3邮件接收程序

    热门讨论 2010-05-21 12:34:40
    连个文件 一个运用C#实现POP3邮件接收程序源代码下载 一个运用C#实现邮件发送 两个都可以用vs2005直接打开运行! 实现了163.126邮箱的!
  • 真STMP、POP3实现收发邮件
  • Python的POP3接收邮件程序
  • POP3实现邮件接收程序

    2012-04-04 11:06:33
    上线了邮件收发功能.POP3实现邮件接收程序
  • c实现pop3接收邮件

    热门讨论 2011-08-08 10:16:38
    一个简单的C实现pop3接收邮件,可删除邮件
  • 基于POP3的邮件收发软件.zip
  • 本文实例讲述了python登录pop3邮件服务器接收邮件的方法。分享给大家供大家参考。具体实现方法如下: import poplib, string PopServerName = "mail.yourserver.com" PopServer = poplib.POP3(PopServerName) print...
  • python POP3接收邮件

    2020-02-21 21:57:56
    python 提供了poplib 模块收取邮件,一旦使用poplib.POP3 / poplib.POP3_SSL 连接到邮件服务器后,就可以使用pop3协议与服务器交互。pop3 协议属于请求-响应式交互协议。 pop3协议的命令如下: user string: 向pop...

    一.简介

    python 提供了poplib 模块收取邮件,一旦使用poplib.POP3 / poplib.POP3_SSL 连接到邮件服务器后,就可以使用pop3协议与服务器交互。pop3 协议属于请求-响应式交互协议。

    pop3协议的命令如下:
    user string: 向pop服务器发送登录用户名
    pass string: 向pop 服务器发送登录密码
    quit:退出pop服务器
    stat:统计邮件服务器状态,包括邮件总数和总大小
    list [msg_no]:列出全部邮件或指定邮件,返回邮件编号和大小
    retr msg_no:获取指定邮件的内容(根据邮件编号获取,编号从1开始)
    dele msg_no:删除指定邮件(根据邮件编号删除,编号从1开始)
    rset :撤销dele 命令

    poplib 模块模拟了pop3协议的相关命令,对其提供了相应的方法:
    在这里插入图片描述

    二.实现流程:

    1.使用poplib.POP3 或 poplib.POP3_SSL 按pop3协议从服务器下载邮件
    2.使用email.parser.Parser 或 email.parser.BytesParser 解析邮件内容,得到EmailMessage 对象

    pop.py

    import poplib
    from email.parser import BytesParser
    from email.policy import default
    
    
    
    pop = poplib.POP3('pop.163.com')
    pop.user('xxxxxx@163.com')
    pop.pass_('xxxxxx')
    
    print(pop.getwelcome())
    
    stat = pop.stat()
    print(stat)
    
    l = pop.list()
    print(l)
    
    r = pop.retr(len(l[1]))
    print(r,len(l[1]))
    
    
    bp = BytesParser(policy=default).parsebytes(b'\r\n'.join(r[1]))
    print(type(bp))
    
    for part in bp.walk():
        print(part.get_content_type())
        if part.get_content_maintype() == 'text':
            print(part.get_content())
    
        elif part.get_content_maintype() == 'multipart':
            continue
        else:
            filename = part.get_filename()
            if not filename:
                filename = 'test-%d.bin' % i
    
            with open(filename,'wb') as f:
                f.write(part.get_payload(decode=True))
    

    retr 命令执行完成后将得到指定邮件信息,该信息是一个元组对象,该元组的[1] 是邮件的数据信息,为一个list 对象。因此程序需要先将数据拼接成一个整体,然后再恢复成一个EmailMessage 对象。

    程序在创建BytesParser时必须指定policy=default;否则BytesParser 解析得到的将是Message对象,处理非常不方便。

    程序处理EmailMessage 对象各部分时,可调用walk() 方法的返回值,对邮件内容进行逐项处理。

    三.测试

    在这里插入图片描述

    本地目录将会生成一个test.jpg 的图片信息

    展开全文
  • Telnet POP邮件接收.rar

    2020-04-05 14:49:08
    Telnet POP邮件接收.rar
  • 关于使用javamail pop接收邮件

    千次阅读 2017-03-04 16:08:45
    关于使用javamail pop接收邮件 在网上找了很多例子 都可以用 但是在解析附件的时候会抛异常 javax.mail.MessagingException: Missing start boundary   at javax.mail.internet.MimeMultipart

    本人第一次写博客   大家将就一下啊      

    关于使用javamail   pop接收邮件     在网上找了很多例子     都可以用  但是在解析附件的时候会抛异常    


    1. javax.mail.MessagingException: Missing start boundary  
    2.     at javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:297)  
    3.     at javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:159)  ...
    于是只能自己编译了   花了半个小时  终于可以运行了   
    接下来看代码

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Properties;
    
    import javax.mail.BodyPart;
    import javax.mail.Flags;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.Multipart;
    import javax.mail.Part;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeUtility;
    
    public class PraseMimeMessage{
    	private MimeMessage mimeMessage=null;
    	private String saveAttachPath="";//附件下载后的存放目录
    	private StringBuffer bodytext= new StringBuffer();
    			//存放邮件内容的StringBuffer对象
    	private String dateformat="yy-MM-dd HH:mm";//默认的日前显示格式
    
    
    	/**
    	 * 初始化一个MimeMessage对象
    	 */
    	public PraseMimeMessage(){}
    	public PraseMimeMessage(MimeMessage mimeMessage){
    		this.mimeMessage = mimeMessage;
    		System.out.println("初始化一个PraseMimeMessage对象--------");
    	}
    
    
    	public void setMimeMessage(MimeMessage mimeMessage){
    		this.mimeMessage=mimeMessage;
    	}
    
    
    	/*
    	 * 获得发件人的地址和姓名
    	 */
    	public String  getFrom()throws Exception{
    		InternetAddress address[] = (InternetAddress[])mimeMessage.getFrom();
    		String from = address[0].getAddress();
    		if(from == null) from="";
    		String personal = address[0].getPersonal();
    		if(personal == null) personal="";
    		String fromaddr = personal+"<"+from+">";
    		return fromaddr;
    	}
    	/*
    	 * 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同
    	 * "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址
    	 */
    
    
    	public String getMailAddress(String type)throws Exception{
    		String mailaddr = "";
    		String addtype = type.toUpperCase();
    		InternetAddress []address = null;
    		if(addtype.equals("TO") || addtype.equals("CC") ||addtype.equals("BCC")){
    			if(addtype.equals("TO")){
    				address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.TO);
    			}else if(addtype.equals("CC")){
    				address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.CC);
    			}else{
    				address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.BCC);
    			}
    			if(address != null){
    				for(int i=0;i<address.length;i++){
    					String email=address[i].getAddress();
    					if(email==null) email="";
    					else{
    						email=MimeUtility.decodeText(email);
    					}
    					String personal=address[i].getPersonal();
    					if(personal==null) personal="";
    					else{
    						personal=MimeUtility.decodeText(personal);
    					}
    					String compositeto=personal+"<"+email+">";
    					mailaddr+=","+compositeto;
    				}
    				mailaddr=mailaddr.substring(1);
    			}
    		}else{
    			throw new Exception("Error emailaddr type!");
    		}
    		return mailaddr;
    	}
    
    
    	/**
    	 * 获得邮件主题
    	 */
    
    
    	public String getSubject() throws MessagingException{
    		String subject = "";
    		try{
    			subject = MimeUtility.decodeText(mimeMessage.getSubject());
    			if(subject == null) subject="";
    		}catch(Exception exce){
    		}
    		return subject;
    	}
    
    
    	/**
    	 * 获得邮件发送日期
    	 */
    
    
    	public String getSentDate() throws Exception{
    		Date sentdate = mimeMessage.getSentDate();
    		SimpleDateFormat format = new SimpleDateFormat(dateformat);
    		return format.format(sentdate);
    	}
    
    
    	/**
    	 * 获得邮件正文内容
    	 */
    
    
    	public String getBodyText(){
    		return bodytext.toString();
    	}
    
    
    	/**
    	 * 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件
    	 * 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析
    	 */
    
    
    	public void getMailContent(Part part)throws Exception{
    		String contenttype = part.getContentType();
    		int nameindex = contenttype.indexOf("name");
    		boolean conname =false;
    		if(nameindex != -1) conname=true;
    		System.out.println("CONTENTTYPE: "+contenttype);
    		if(part.isMimeType("text/plain") && !conname){
    			bodytext.append((String)part.getContent());
    		}else if(part.isMimeType("text/html") && !conname){
    			bodytext.append((String)part.getContent());
    		}
    	}
    
    
    	/**
    	 * 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"
    	 */
    	public boolean getReplySign()throws MessagingException{
    		boolean replysign = false;
    		String needreply[] = mimeMessage.getHeader("Disposition-Notification-To");
    		if(needreply != null){
    			replysign = true;
    		}
    		return replysign;
    	}
    
    
    	/**
    	 * ---获得此邮件的Message-ID
    	 */
    	public String getMessageId()throws MessagingException{
    		return mimeMessage.getMessageID();
    	}
    
    
    	/**
    	 * ---判断此邮件是否已读,如果未读返回返回false,反之返回true---
    	 */
    	public boolean isNew()throws MessagingException{
    		boolean isnew = false;
    		Flags flags = ((Message)mimeMessage).getFlags();
    		Flags.Flag []flag = flags.getSystemFlags();
    		System.out.println("flags's length: "+flag.length);
    		for(int i=0;i<flag.length;i++){
    			if(flag[i] == Flags.Flag.SEEN){
    				isnew=true;
    				System.out.println("seen Message.......");
    				break;
    			}
    		}
    		return isnew;
    	}
    
    
    	/**
    	 * ----判断此邮件是否包含附件----
    	 */
    	public boolean isContainAttach(Part part)throws Exception{
    		boolean attachflag = false;
    		if(part.isMimeType("multipart/*")){
    			Multipart mp = (Multipart)part.getContent();
    			for(int i=0;i<mp.getCount();i++){
    				BodyPart mpart = mp.getBodyPart(i);
    				String disposition = mpart.getDisposition();
    				if((disposition != null) &&((disposition.equals(Part.ATTACHMENT)) ||(disposition.equals(Part.INLINE))))
    					attachflag = true;
    				else if(mpart.isMimeType("multipart/*")){
    					
    				}else{
    					String contype = mpart.getContentType();
    					if(contype.toLowerCase().indexOf("application") != -1) attachflag=true;
    					if(contype.toLowerCase().indexOf("name") != -1) attachflag=true;
    				}
    			}
    		}else if(part.isMimeType("message/rfc822")){
    			attachflag = isContainAttach((Part)part.getContent());
    		}
    		return attachflag;
    	}
    
    
    	/**
    	 * ----保存附件----
    	 */
    
    
    	public void saveAttachMent(Part part)throws Exception{
    		String fileName = "";
    		if(part.isMimeType("multipart/*")){
    			Multipart mp = (Multipart)part.getContent();
    			for(int i=0;i<mp.getCount();i++){
    				BodyPart mpart = mp.getBodyPart(i);
    				String disposition = mpart.getDisposition();
    				if((disposition != null) &&((disposition.equals(Part.ATTACHMENT)) ||(disposition.equals(Part.INLINE)))){
    					fileName = mpart.getFileName();
    					if(fileName.toLowerCase().indexOf("gb2312") != -1){
    						fileName = MimeUtility.decodeText(fileName);
    					}
    					saveFile(fileName,mpart.getInputStream());
    				}else{
    					fileName = mpart.getFileName();
    					if((fileName != null) && (fileName.toLowerCase().indexOf("GB2312") != -1)){
    						fileName=MimeUtility.decodeText(fileName);
    						saveFile(fileName,mpart.getInputStream());
    					}
    				}
    			}
    		}else if(part.isMimeType("message/rfc822")){
    			saveAttachMent((Part)part.getContent());
    		}
    	}
    
    
    	/**
    	 * ---设置附件存放路径---
    	 */
    
    
    	public void setAttachPath(String attachpath){
    		this.saveAttachPath = attachpath;
    	}
    
    
    	/**
    	 * ----设置日期显示格式----
    	 */
    
    
    	public void setDateFormat(String format)throws Exception{
    		this.dateformat = format;
    	}
    
    
    	/**
    	 * 【获得附件存放路径】
    	 */
    
    
    	public String getAttachPath(){
    		return saveAttachPath;
    	}
    
    
    	/**
    	 * 保存附件到指定目录里
    	 */
    
    
    	private void saveFile(String fileName,InputStream in)throws Exception{
    		String osName = System.getProperty("os.name");
    		String storedir = getAttachPath();
    		String separator = "";
    		System.out.println(osName);
    		if(osName == null) osName="";
    		if(osName.toLowerCase().indexOf("win") != -1){//判断是不是pc端
    			separator="\\";
    			if(storedir == null || storedir.equals("")) 
    				storedir="D:\\\\";
    			
    		}else{
    			separator = "/";
    			storedir = "/pop";
    		}
    		File storefile = new File(storedir+separator+fileName);
    		System.out.println("文件路径: "+storefile.toString());
    		for(int i=0;storefile.exists();i++){
    		storefile = new File(storedir+separator+fileName+i);
    		}
    		if(!storefile.exists())    
    		{    
    		    try {    
    		    	storefile.createNewFile();    
    		    } catch (IOException e) {    
    		        // TODO Auto-generated catch block    
    		        e.printStackTrace();    
    		    }    
    		}    
    		BufferedOutputStream bos = null;
    		BufferedInputStream  bis = null;
    		try{
    			bos = new BufferedOutputStream(new FileOutputStream(storefile));
    			bis = new BufferedInputStream(in);
    			int c;
    			while((c=bis.read()) != -1){
    				bos.write(c);
    				bos.flush();
    			}
    		}catch(Exception exception){
    			exception.printStackTrace();
    			throw new Exception("文件保存失败!");
    		}finally{
    			bos.close();
    			bis.close();
    		}
    	}
    
    
    	/**
    	 * PraseMimeMessage类测试
    	 */
    
    
    	public static void main(String args[])throws Exception{
    		String host = "pop.163.com";     //qq的话  用pop.qq.com  其他自推
    		String username ="*****@163.com";     //例如:******@163.com
    		String password ="*******";       //如果是qq或163邮箱   得用授权码当作密码来验证
    		Properties props = new Properties();
    		props.setProperty("mail.transport.protocol", "pop3"); // 使用的协议(JavaMail规范要求)
    		props.setProperty("mail.smtp.host", host); // 发件人的邮箱的 SMTP服务器地址
    		
    		Session session = Session.getDefaultInstance(props, null);
    		Store store = session.getStore("pop3");
    		store.connect(host, username, password);
    		Folder folder = store.getFolder("INBOX");
    		folder.open(Folder.READ_ONLY);
    		Message message[] = folder.getMessages();
    		System.out.println("Messages's length: "+message.length);
    		PraseMimeMessage pmm = null;
    		for(int i=0;i<message.length;i++){
    			pmm = new PraseMimeMessage((MimeMessage)message[i]);
    			System.out.println("Message "+i+" 主题: "+pmm.getSubject());
    			System.out.println("Message "+i+" 时间: "+pmm.getSentDate());
    			System.out.println("Message "+i+" 是否需要回执: "+pmm.getReplySign());
    			System.out.println("Message "+i+" 是否已读: "+pmm.isNew());
    			System.out.println("Message "+i+"  是否包含附件: "+pmm.isContainAttach((Part)message[i]));
    			System.out.println("Message "+i+" 发件人的地址和姓名: "+pmm.getFrom());
    			System.out.println("Message "+i+" 邮件的收件人: "+pmm.getMailAddress("to"));
    			System.out.println("Message "+i+" cc: "+pmm.getMailAddress("cc"));
    			System.out.println("Message "+i+" bcc: "+pmm.getMailAddress("bcc"));
    			pmm.setDateFormat("yy年MM月dd日 HH:mm");
    			System.out.println("Message "+i+" 时: "+pmm.getSentDate());
    			System.out.println("Message "+i+" 邮件的Message-ID: "+pmm.getMessageId());
    			pmm.getMailContent((Part)message[i]);
    			System.out.println("Message "+i+" 邮件正文内容: \r\n"+pmm.getBodyText());
    
    			File file=new File("");
    			if(!file.exists()){
    				file.mkdirs();
    			}
    			pmm.setAttachPath(file.toString());
    			pmm.saveAttachMent((Part)message[i]);
    		}
    	}
    }
    就这样就可以跑起来了

    展开全文
  • Pop3邮件接收

    2005-12-19 10:51:43
    利用Pop3协议接受电子邮件
  • C# pop接收邮件

    2011-01-12 17:58:17
    C# 强大的邮件接收功能,绝对能用 稳定、可靠、速度快
  • smtp+pop3邮件收发系统

    2019-06-12 19:02:49
    该文档代码在VS2017创建,可以通过连接服务器进行邮件的简单收发。为什么CSDN下载的积分,需要那么高,这不是害人吗
  • pop3接收邮件及解码

    2011-02-26 11:19:04
    可以实现邮件的接收,邮件头,邮件正文的解码
  • Pop3协议_收发邮件

    2010-03-12 14:45:02
    Pop3协议_收发邮件
  • 参考廖雪峰的教程:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005156604f38836be1707453eb025ce8c3079978d000

    参考廖雪峰的教程:

    https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005156604f38836be1707453eb025ce8c3079978d000

    
    
    展开全文
  • VC邮件收发pop3类

    2015-11-02 17:00:08
    VC邮件收发pop3类,吧类添加到程序即可使用它收发邮件
  • python3.0下的SMTP/POP3 收发邮件的发送

    千次阅读 2018-10-10 22:37:50
     邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应的服务器 暂存到投递服务区,然后由当前运营商根据邮件特征信息将邮件转发给目标服务器的投递服 务区,此时目标用户的邮件已经发送完成...

    文本邮件的发送

    1.邮件发送流程

           邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应的服务器 暂存到投递服务区,然后由当前运营商根据邮件特征信息将邮件转发给目标服务器的投递服 务区,此时目标用户的邮件已经发送完成,等待对方收取即可。

           邮件的收取也是主动行为,用户可以打开邮件客户端软件,通过点击类似于收取这样的行为 就可以从自己邮箱所属的服务器投递区中提取邮件了。

    1.1发送普通文本邮件

    完整代码:

    """
    文本邮件的发送
    version 1.1.0
    author lkk
    email lkk199404@163.com
    
    """
    # 引入要用到的模块
    import email, smtplib
    from email.mime.text import MIMEText
    
    # 定义发送人邮箱信息
    SMTP_SERVER = 'smtp.163.com'
    EMAIL_USER = 'lkk9404@163.com'
    EMAIL_PASS = '填写邮箱授权码'
    
    # 定义发件人、收件人邮箱
    sender = EMAIL_USER
    receiver = '690575621@qq.com'
    
    # 定义邮件内容
    message = MIMEText("这是一个文本信件,<h1>普通文本</h1>", "plain", "utf-8")
    # 定义收件人、发件人和邮件主题、如果不定义~可能会引发554垃圾邮件的检查错误
    message['from'] = sender
    message['to'] = receiver
    message['subject'] = 'lkk测试邮件' #邮件主题
    
    # 连接邮件服务器
    server = smtplib.SMTP_SSL(SMTP_SERVER, 465)
    # 设置信息展示级别
    server.set_debuglevel(1)
    # 登录邮箱服务器
    server.login(EMAIL_USER, EMAIL_PASS)
    # 发送邮件
    server.sendmail(from_addr=sender, to_addrs=[receiver], msg=message.as_string())
    
    # 退出并关闭客户端
    server.quit()
    print("邮件发送结束.")
    
    

    1.2发送HTML格式邮件

    相对于普通文本格式,HTML 文本更加的丰富,可以给文本定义各种格式数据,操作方式也 较为简单,将普通文本的 plain 类型更改为 html 类型即可。

    完整代码:

    """
    html邮件的发送
    version 1.1.0
    author lkk
    email lkk199404@163.com
    DESC: 发送网页格式的邮件
    """
    
    # 引入要用到的模块
    from email.mime.text import MIMEText
    from email.header import Header
    from email.utils import parseaddr, formataddr
    from smtplib import SMTP_SSL
    
    
    def __format_addr(address):
        """用户信息和邮件解析函数"""
        re, addr = parseaddr(address)
        # 返回编码解析后的数据
        return formataddr((Header(re, 'utf-8').encode(),addr))
    
    
    # 定义发件人信息
    SMtp_SERVER = 'smtp.qq.com'
    EMAIL_USER = '937977603@qq.com'
    EMAIL_PASS = '填写QQ邮箱授权码'
    # lkk0402
    # 定义发件人、收件人
    sender = EMAIL_USER
    receive = 'lkk9404@163.com'
    
    # 定义邮件内容
    message = MIMEText('<h1>HTML测试邮件</h1>', 'html', 'utf-8')
    message['from'] = __format_addr('lkk <{}>'.format(sender))
    message['to'] = __format_addr('lk <{}>'.format(receive))
    message['subject'] = 'HTML测试' #邮件主题
    # 连接邮箱服务器
    mail_server = SMTP_SSL(SMtp_SERVER, 465)
    mail_server.set_debuglevel(1)
    
    # 登录服务器
    mail_server.login(EMAIL_USER, EMAIL_PASS)
    
    # 发送邮件
    mail_server.sendmail(from_addr=sender, to_addrs=[receive], msg=message.as_string())
    
    # 关闭并退出客户端
    mail_server.quit()
    print('邮件已发送>>>>')
    

    1.3发送含有附件的邮件

    邮件本身就是一个对象,在该一个完整的邮件中应该包含的数据有

    ⚫ 标题

    ⚫ 发件人

    ⚫ 收件人

    ⚫ 文本内容

    ⚫ 附件

    在 PYTHON 中进行操作时,主要通过 email.mime.multipart.MIMEMultipart 定义邮 件对象,email.mime.text.MIMEText 定义要发送的邮件正文的内容,要发送的附件二 进制数据由 email.mime.base.MIMEBase 进行规范

    完整代码:

    """
    html邮件的发送
    version 1.1.0
    author lkk
    email lkk199404@163.com
    DESC: 发送带附件
    """
    
    # 引入依赖的模块
    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.header import Header
    from email.utils import parseaddr, formataddr
    from email import encoders
    
    
    def __format_site(user):
        re, site = parseaddr(user)
        return formataddr((Header(re, "utf-8").encode(), site))
    
    
    # 定义发件人信息
    SMtp_SERVER = 'smtp.qq.com'
    EMAIL_USER = '937977603@qq.com'
    EMAIL_PASS = '邮箱授权码'
    
    # 定义收件人、发件人
    sender = EMAIL_USER
    receiver = 'lkk9404@163.com'
    
    #定义邮件对象
    message = MIMEMultipart()
    
    # 绑定发件人、收件人、主题
    message['subject'] = Header('来自CSDN的一封邮件')
    message['from'] = __format_site('CSDN<{}>'.format(sender))
    message['to'] = __format_site(receiver)
    
    # 定义信件文本内容
    content = MIMEText("<h1>Python的火,烧到了所有的程序员?</h1>", 'html', 'utf-8')
    message.attach(content)
    
    # 绑定一个附件
    with open('E:\my_test\lkk\dist\py18_plane-1.00.002.tar.gz', 'rb') as f:
        # 设置MIMEBase对象包装附件
        attachment = MIMEBase('application', 'octet-stream')
        # 添加附件
        attachment.set_payload(f.read())
        # 添加附件标题
        attachment.add_header('Content-Disposition', 'attachment', filename=('gbk', '', f.name))
        # 编码附件
        encoders.encode_base64(attachment)
        # 添加附件到邮件中
        message.attach(attachment)
    
    # 登录邮件服务器
    mail_server = SMTP_SSL(SMtp_SERVER, 465)
    mail_server.set_debuglevel(1)
    mail_server.login(EMAIL_USER, EMAIL_PASS)
    # 发送邮件
    mail_server.sendmail(from_addr=sender, to_addrs=[receiver], msg=message.as_string())
    
    # 发送完成
    mail_server.quit()
    print('邮件已发送>>>>')

     

    展开全文
  • 主要介绍了Python使用POP3和SMTP协议收发邮件的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 利用open pop3组件实现了邮件的接收并可以接收附件,里面还有实例。测试过的,可以用的
  • 使用Socket结合SMTP/POP3邮件协议发送和接收邮件
  • smtp pop3邮件收发系统

    2010-11-29 14:44:00
    邮件收发系统依照smtp协议,实现邮件的发送,依照pop3协议来实现邮件的接收
  • Qt pop3接收邮件并下载附件程序

    千次阅读 2019-04-30 16:13:13
    功能简介:帮朋友做的自动登陆邮箱接收邮件,并把邮件保存到数据库,附件下载到工程目录。 环境:qtcreator5.4,... 源码:Qt pop3接收邮件并下载附件程序 主要代码 创建数据库并初始化显示 ui->setupUi...
  • powershell pop3 收取邮件

    千次阅读 2016-11-29 11:53:33
    powershell pop3 收取邮件
  • Python 用POP接收邮件

    2013-11-01 21:39:00
    POP3非常简单,可以用来从邮件服务器上下载邮件,然后删除这些邮件。功能非常有限,后面讲解的IMAP完胜它,不过作为入门级的,还是有必要介绍一下,也对学习SMTP有帮助。 Python提供了poplib模块,它提供了使用POP...
  • 主要介绍了Python使用smtp和pop简单收发邮件完整实例,简单介绍了smtp和pop,然后分享了相关实例代码,具有一定借鉴价值,需要的朋友可以参考下
  • PHP 使用POP3 接收邮件

    千次阅读 2018-03-13 11:45:11
    以下对几个常用的POP3命令作一个简单的介绍 : 命令 参数 状态 描述 ------------------------------------------ USER username 认可 此命令与下面的pass...APOP Name,Digest 认可 Digest是MD5消息摘要 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,260
精华内容 18,904
关键字:

pop收邮件什么发邮件