精华内容
下载资源
问答
  • 下载邮箱附件的工具类: import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Properties; import javax.mail.Flags; import javax.mail.Folder; ...

    下载邮箱附件的工具类:

    import java.io.File;

    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.util.Properties;


    import javax.mail.Flags;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.Multipart;
    import javax.mail.Part;
    import javax.mail.Session;
    import javax.mail.Store;
    import javax.mail.URLName;


    /**
     * 下载存储名片全能王的邮箱附件 工具类
     * @author chenfanglin
     * @date 2015年5月25日 下午7:00:14
     */
    public class DownloadCCUtil {
    public static void main(String[] args) {
    File file = new File("/data0");
    file.mkdir();
    new DownloadCCUtil();
    }
    public DownloadCCUtil(){
    try {
    DownloadCCUtil.getEmailWithSubjectContaining("/data0", false);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }


    public static Folder getMailFolder() throws Exception {

            Folder folder = null;

    String email = "";// 邮箱地址 (指定一个邮箱)

    String password = "";// 邮箱登陆密码(密码)

            URLName urlname = new URLName("pop3","pop.exmail.qq.com",110,null,email,password);
         // 1. 设置连接信息, 生成一个 Session  
            Properties props = new Properties();  
            props.setProperty("mail.smtp.host", "pop.exmail.qq.com");  
            props.setProperty("mail.smtp.auth", "true");
            Session session = Session.getDefaultInstance(props);
            Store store = session.getStore(urlname);  
            store.connect();  
            folder = store.getDefaultFolder();// 默认父目录  
            Folder popFolder = folder.getFolder("INBOX");
            return popFolder;
        }


        public static void getEmailWithSubjectContaining(String filepath,
                 boolean delete) throws Exception {
            Folder folder = getMailFolder();


            if (folder == null) {
                return;
            }
            folder.open(Folder.READ_WRITE);


            Message[] msgs = folder.getMessages();


            System.out.println("Totally there are " + msgs.length);
            for (int i = msgs.length-1; i > msgs.length-2; i--) {
                String pathToSave = filepath;
                if(!folder.isOpen()){
                folder.open(Folder.READ_WRITE);
                }
                String subject = msgs[i].getSubject();


                System.out.println("Email subject: " + subject);


                Part p = (Part) msgs[i];


                dumpAttachment(p, pathToSave);


                msgs[i].setFlag(Flags.Flag.DELETED, delete);  //得到邮件后删除
            }
    //        folder.expunge(); //清除邮箱里DELETE的邮件
            folder.close(false);
        }


        public static void dumpAttachment(Part part, String filepath) throws Exception{
            if (part.isMimeType("text/plain")) {
                System.out.println("This is plain text");
            } else if (part.isMimeType("multipart/*")) {
                System.out.println("This is a Multipart, trying to dig into the attachment now");
                Multipart mp = (Multipart) part.getContent();
                int count = mp.getCount();
                for (int i = 0; i < count; i++) {
                    dumpAttachment(mp.getBodyPart(i), filepath);
                }
            } else if (part.isMimeType("message/rfc822")) {
                System.out.println("This is a Nested Message");
                dumpAttachment((Part) part.getContent(), filepath);
            } else {
                Object o = part.getContent();
                String attachmentFilename = "no_name";
                if (part.getFileName() != null && !part.getFileName().equals("")) {
                    attachmentFilename = part.getFileName();
                }
                
                if (o instanceof String) {
                    System.out.println("This is a string");
                } else if (o instanceof InputStream) {
                    System.out.println("This is just an input stream");
                    InputStream is = (InputStream) o;
                    
                    FileOutputStream fos = new FileOutputStream(filepath + "/" + attachmentFilename);
                    int c;
                    int count = 0;
                    System.out.print("Saving attachment: " + attachmentFilename);
                    while ((c = is.read()) != -1) {
                        fos.write(c);
                        if (count % 1000000 == 0) {
                        } else if (count % 5000 == 0) {
                        }
                        count ++;
                    }


                } else {
                    System.out.println("This is an unknown type");
                    System.out.println(o.toString());
                }
            }
        }
    }
    展开全文
  • Asp.Net 下载邮箱附件(随手笔记)

    千次阅读 2020-04-16 14:10:56
    下载QQ、outllook、网易邮件附件解决方案1.注册QQ邮箱,并开启pop32....这里示例下载QQ邮箱附件,其它邮箱附件下载步骤也是一样的 1.注册QQ邮箱,并开启pop3 2.下载并引用程序集DLL:OpenPop.dll...

    解决方案

    这里示例下载QQ邮箱附件,其它邮箱附件下载步骤也是一样的

    1.注册QQ邮箱,并开启pop3

    在这里插入图片描述

    2.下载并引用程序集DLL:OpenPop.dll

    百度网盘路径:https://pan.baidu.com/s/1Ss9ryPzJxGKdVPavyj3Sjg 提取码:vfxp

    3.创建EmailHelper对象

        public class EmailHelper
        {
            private string accout; //邮箱账户
            private string pass;//邮箱密码
            private string popServer; //pop服务地址
            private int popPort; //pop服务端口号(110)
            private bool isUseSSL;
            private string ServerDataDB;
    
            public EmailHelper(string _accout, string _pass, string _popServer, int _popPort, bool _isUseSSL,string _ServerDataDB)
            {
                this.accout = _accout;
                this.pass = _pass;
                this.popServer = _popServer;
                this.popPort = _popPort;
                this.isUseSSL = _isUseSSL;
                this.ServerDataDB = _ServerDataDB;
            }
        }
    

    4.验证邮箱是否登录成功

            #region 验证邮箱是否登录成功
            public bool ValidateAccount(ref string error)
            {
                Pop3Client client = new Pop3Client();
                try
                {
                    client.Connect(popServer, popPort, isUseSSL);
                    client.Authenticate(accout, pass);
                }
                catch (InvalidLoginException ex)
                {
                    error = "邮箱登录失败!";
                    Log.CreateLogManager().Debug("0.1邮箱登录失败");
                    return false;
                }
                catch (InvalidUseException ex)
                {
                    error = "邮箱登录失败!";
                    Log.CreateLogManager().Debug("0.2邮箱登录失败");
                    return false;
                }
                catch (PopServerNotFoundException ex)
                {
                    error = "服务器没有找到!";
                    Log.CreateLogManager().Debug("0.3服务器没有找到");
                    return false;
                }
                catch (PopServerException ex)
                {
                    error = "请在邮箱开通POP3/SMTP!";
                    Log.CreateLogManager().Debug("0.4请在邮箱开通POP3/SMTP!");
                    return false;
                }
                catch (Exception ex)
                {
                    error = "连接出现异常";
                    Log.CreateLogManager().Debug("0.5连接出现异常");
                    return false;
                }
                finally
                {
                    client.Disconnect();
                }
                return true;
            }
            #endregion
    

    获取邮件数量

            #region
            /// <summary>
            /// 获取邮件数量
            /// </summary>
            /// <returns></returns>
            public int GetEmailCount()
            {
                int messageCount = 0;
                using (Pop3Client client = new Pop3Client())
                {
                    if (client.Connected)
                    {
                        client.Disconnect();
                    }
                    client.Connect(popServer, popPort, isUseSSL);
                    client.Authenticate(accout, pass, AuthenticationMethod.UsernameAndPassword);
                    messageCount = client.GetMessageCount();
                }
    
                return messageCount;
            }
            #endregion
    

    下载邮件附件

            #region 下载邮件附件
            /// <summary>
            /// 下载邮件附件
            /// </summary>
            /// <param name="path">下载路径</param>
            /// <param name="messageId">邮件编号</param>
            public void DownAttachmentsById(string path, int messageId)
            {
                using (Pop3Client client = new Pop3Client())
                {
                    if (client.Connected)
                    {
                        client.Disconnect();
                    }
                    client.Connect(popServer, popPort, isUseSSL);
                    client.Authenticate(accout, pass);
                    Message message = client.GetMessage(messageId);
                    string senders = message.Headers.From.DisplayName;
                    string from = message.Headers.From.Address;
                    string subject = message.Headers.Subject;
                    DateTime Datesent = message.Headers.DateSent;
    
    
                    List<MessagePart> messageParts = message.FindAllAttachments();
                    foreach (var item in messageParts)
                    {
                        if (item.IsAttachment)
                        {
                            if (item.FileName.Contains(".xlsx") || item.FileName.Contains(".xlsx"))
                                File.WriteAllBytes(path + item.FileName, item.Body);
                        }
                    }
                }
            }
            #endregion
    

    验证outllok邮箱失败及处理

    验证outlook邮箱失败是因为访问outook邮箱得走加密方式

    1. 登录outllok网页邮箱
      路径:链接地址

    2. 设置开启pop
      在这里插入图片描述

    3. 请将验证邮箱账号的pop服务地址、pop服务端口号、isUseSSL改成true;如下图:
      在这里插入图片描述

    展开全文
  • python下载邮箱邮件

    2018-09-26 14:17:50
    data = part.get_payload(decode=True) # 下载附件 print('--------', data) att_file = open(filename, 'wb') # 在指定目录下创建文件,注意二进制文件需要用wb模式打开 attachment_files.append(filename) ...
    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    import poplib
    import time
    from email.parser import Parser
    from email.header import decode_header
    from email.utils import parseaddr
    import datetime
    
    # 输入邮件地址, 口令和POP3服务器地址:
    email_name = 'xxxx'
    password = 'xxxx'
    pop3_server = 'imap.exmail.qq.com'
    
    
    def decode_str(s):  # 字符编码转换
        value, charset = decode_header(s)[0]
        if charset:
            value = value.decode(charset)
        return value
    
    
    def get_att(msg):
        import email
        attachment_files = []
    
        for part in msg.walk():
            file_name = part.get_filename()  # 获取附件名称类型
            contType = part.get_content_type()
    
            if file_name:
                h = email.header.Header(file_name)
                dh = email.header.decode_header(h)  # 对附件名称进行解码
                print(dh, '---------')
                filename = dh[0][0]
                if dh[0][1]:
                    filename = decode_str(str(filename, dh[0][1]))  # 将附件名称可读化
                data = part.get_payload(decode=True)  # 下载附件
                print('--------', data)
                att_file = open(filename, 'wb')  # 在指定目录下创建文件,注意二进制文件需要用wb模式打开
                attachment_files.append(filename)
                att_file.write(data)  # 保存附件
                att_file.close()
        return attachment_files
    
    
    def email_main():
        # 连接到POP3服务器,有些邮箱服务器需要ssl加密,对于不需要加密的服务器可以使用poplib.POP3()
        server = poplib.POP3_SSL(pop3_server)
        server.set_debuglevel(1)
        # 打印POP3服务器的欢迎文字:
        print(server.getwelcome().decode('utf-8'))
        # 身份认证:
        server.user(email_name)
        server.pass_(password)
        # 返回邮件数量和占用空间:
        print('Messages: %s. Size: %s' % server.stat())
        # list()返回所有邮件的编号:
        resp, mails, octets = server.list()
        # 可以查看返回的列表类似[b'1 82923', b'2 2184', ...]
        print(mails)
        index = len(mails)
    
        for i in range(index, 0, -1):
            # 倒序遍历邮件
            resp, lines, octets = server.retr(i)
            # lines存储了邮件的原始文本的每一行,
            # 邮件的原始文本:
            msg_content = b'\r\n'.join(lines).decode('utf-8')
            # 解析邮件:
            msg = Parser().parsestr(msg_content)
            # 获取发件人邮箱
            hdr, addr = parseaddr(msg.get('From'))
            # 获取邮件时间
            date1 = time.strptime(msg.get("Date")[0:24], '%a, %d %b %Y %H:%M:%S')  # 格式化收件时间
            date2 = time.strftime("%Y%m%d", date1)  # 邮件时间格式转换
            today_date = datetime.datetime.today().strftime("%Y%m%d")
            # if (date2 < '20180306'):
            #     continue
            if date2 == today_date:
                if from_email == 'autopost@baidu.com':
                    f_list = get_att(msg)  # 获取附件
        server.quit()
    
    
    if __name__ == '__main__':
        email_main()
    

     

    展开全文
  • 比如在向各位家长发了某个电子表格要求填写一些信息后,请他们发送到指定邮箱,但一个班就有近五十位同学,有的家长还会发送几次,几个班级下来一下就是几百个邮件,如果要一个个打开且逐一来下载,那势必会是一件...
    前言在工作中,经常会碰到这样一种情况:比如在向各位家长发了某个电子表格要求填写一些信息后,请他们发送到指定邮箱,但一个班就有近五十位同学,有的家长还会发送几次,几个班级下来一下就是几百个邮件,如果要一个个打开且逐一来下载,那势必会是一件相当费时费力的事情,这个时候,就要运用Python这个强大的助手了,这一篇文章记录一下如何用一段代码将同一个邮箱多个邮件中的附件下载到同一个文件夹中。

    邮箱的设置

    由于工作中用的是新浪免费邮箱,这里就以新浪邮箱为例,事实上QQ邮箱、163邮箱和新浪邮箱类似。要从Python脚本登录新浪邮箱,首先需要打开新浪邮箱的POP3服务。现在新浪邮箱对第三方客户端的登录需要开通“客户端授权码”,如下图所示:

    be53d13924bbc2670af94dc8b0b3f441.png

    如上图所示,如果不打开“客户端授权码”,则当脚本登录时显示的错误如下所示:

    6dffd3f97c04384e047b87f998030605.png

    为了打开授权,需要打开授权码状态:

    7695270730b8c3c877708ee1e091e269.png

    这时需要用手机短信进行验证,当验证完毕后,得到如下一个界面:

    0d26a2470d55064411295426c33cf218.png

    上图中的16位字符即是授权码。当得到授权码后,在Python脚本中,需要用该授权码代替密码来登录。

    获取邮箱附件的脚本

    要用脚本登录邮箱,需要得到该邮箱的pop3地址,新浪的pop3地址是:pop.sina.com,这在它的官方帮助文档中有显示

    825a8e8bd71ecaaa9b5e029db3365742.png

    接下来我们来创建一个poplib对象:

    import poplibhost = "pop.sina.com"server = poplib.POP3(host)  
    上述代码中的server是一个poplib.pop3对象,现在要用它对用户名和密码进行认证:
    username = "aaa@sina.com"  password = "授权码"server.user(username)server.pass_(password)
    认证成功,则返回如下界面:

    d6b8a419c1a082d592fac0fe59b5eb59.png

    可以用server.stat()返回邮件的数量和大小,为了得到邮件,用以下代码来解析server.list():
    resp, mails, octets = server.list()
    然后对mails进行倒序遍历:
    from email.parser import Parser# 倒序遍历邮件index = len(mails)for i in range(index, 0, -1):    # lines存储了邮件的原始文本的每一行    resp, lines, octets = server.retr(i)    # 邮件的原始文本:    msg_content = b'\r\n'.join(lines).decode('utf-8')    # 解析邮件:    msg = Parser().parsestr(msg_content)
    此时,上述代码的msg中就含有一个邮件的所有信息,下面我们来用一个函数对其解析:
    import emaildef get_att(msg):    attachment_files = []    mailattrdir = 'mailattr'    for part in msg.walk():        file_name = part.get_filename()  # 获取附件名称类型        contType = part.get_content_type()        if file_name:            h = email.header.Header(file_name)            dh = email.header.decode_header(h)  # 对附件名称进行解码            filename = dh[0][0]            if dh[0][1]:                filename = decode_str(str(filename, dh[0][1]))  # 将附件名称可读化            data = part.get_payload(decode=True)  # 下载附件            # 创建附件存储文件夹            if not os.path.isdir(mailattrdir):                os.mkdir(mailattrdir)            # 在指定目录下创建文件,注意二进制文件需要用wb模式打开            att_file = open(mailattrdir + os.sep + filename, 'wb')              attachment_files.append(filename)            att_file.write(data)  # 保存附件            att_file.close()    return attachment_files
    上述代码中的decode_str函数是一个自定义的解码函数:
    from email.header import decode_headerdef decode_str(s):#字符编码转换    value, charset = decode_header(s)[0]    if charset:        value = value.decode(charset)    return value
    至此,就完成了附件的下载,主函数修改如下:
    def downloadmail():    host = "pop.sina.com"    username = "aaa@sina.com"  # 用户名    password = "授权码"    # 连接到POP3服务器    server = poplib.POP3(host)    # 身份验证    server.user(username)    server.pass_(password)        # 分离邮件    resp, mails, octets = server.list()    # 倒序遍历邮件    index = len(mails)    for i in range(index, 0, -1):        # lines存储了邮件的原始文本的每一行        resp, lines, octets = server.retr(i)        # 邮件的原始文本:        msg_content = b'\r\n'.join(lines).decode('utf-8')        # 解析邮件:        msg = Parser().parsestr(msg_content)        # 获取附件        f_list = get_att(msg)    print("文件已下载完成!")
    程序运行截图如下:

    d1b7c511d12f67e6ba48469091f0a9c9.png

    小结

    本文介绍了如何利用Python脚本来获取新浪邮箱多个邮件的附件,利用这段代码可以大大节约工作时间。特此记录以备忘。
    展开全文
  • 然后在下载过程中记录收件人的邮箱下载完成后再修改重命名,给附件添加收件人邮箱的前缀。https://github.com/XHXIAIEIN/Auto-Download-QQEmail-File2.然后再去读取文件夹的文件名,匹配关键词移动到相应的文件夹...
  • ORACLE 专用下载邮箱

    2011-05-25 20:04:55
        下载专用:       账号: oracleasshole@163.com 密码:oracle123ORACLE
  • 参照大神们的代码写了个读取Gmail邮箱下载所有附件的脚本,想请问一下是否有办法根据邮件标题的前缀或者附件名称的前缀来决定是否下载此附件? ``` def get_email_content(message, savepath): attachments ...
  • 公布代码下载邮箱密码

    千次阅读 热门讨论 2006-05-09 00:06:00
    原来大概每周处理一次邮箱,显然无法满足读者需求因此公布邮箱密码,望读者自觉维护5.9日凌晨回复8封邮件strutsproject@126.com密码: 111111感谢读者支持!
  • 系统:Windows10家庭版... 如果可以通过某种方式(如:右击——打开新窗口,可以看到该文件夹的所有附件,选择需要的下载),做到批量下载Excel表格附件,就可以很方便了。 当然其他的方式批量下载也可以的~~ 谢谢~~~~
  • DMail 是邮件接收代码,可以批量下载邮箱附件。 试用版只提供126邮箱服务器,只提供最多3封邮件的下载,如需下载其它邮箱,请购买邮箱服务器。 价格1000 RMB/邮箱。 如有任何疑问,请联系作者。 QQ:317665051 E-...
  • DMail 是邮件接收工具,可以批量下载邮箱附件。目前这个版本是2.0,增加了对64位操作系统的支持,欢迎大家使用。 试用版只提供一些常用邮箱地址以及最近3封邮件的下载,如需下载其它邮箱,可联系作者。
  • C# 邮箱附件下载

    2019-03-07 19:56:25
    C# 邮箱附件下载下载后删除邮件
  • 139邮箱手机客户端,是中国移动提供给我们的一款电子邮件软件,可以用手机号@139.com作为个人的邮箱,大大的提高了我们日常工作的效率,功能齐全,下面小编会写到,有需要的小伙伴可以下载体验一下哦~139邮箱手机...
  • 139邮箱怎么下载

    2018-05-02 11:01:15
    139邮箱怎么下载
  • 淘宝支付宝邮箱提取采集器下载_下载,淘宝客推广利器
  • 163邮箱是否需要下载呢?对163个人邮箱你了解多少?一篇文章带你了解个人邮箱 163个人邮箱是什么?163邮箱是TOM邮箱旗下的个人VIP邮箱,也可以叫做TOM163尊享邮。和普通个人邮箱不同,163尊享邮的容量更大,功能更全...
  • QQ邮箱下载次数破解工具
  • outlook 邮箱UI redesign .fig素材下载
  • 网易邮箱直接下载 安全无副作用,希望直接下载使用的客户可以随时下载
  • Mail.Ru邮件是一款手机电子邮箱应用,应用界面简洁,支持多账户,可以轻松切换,为大家的生活和工作带来了极大的便利,可缓存邮件,在没有网络的时候也可以轻松查看。Mail.Ru邮件来自俄罗斯的邮箱客户端,也支持特别...
  • 首先邮箱的配置P0P3 配置成功后可以直接在安装有python的win或者linux跑代码,注意修改文件路径和邮箱名以及访问码!!! 代码如下: https://github.com/prograguo/python.git ...
  • IDEA下载及用校园邮箱激活

    千次阅读 2019-10-21 17:54:07
    (一)IDEA下载 下载地址 (二)使用校园邮箱激活IDEA (1)
  • python 登陆邮箱下载邮件附件

    千次阅读 2019-10-22 20:42:39
    最近有一个比较特殊的需求,有一个业务每日会产生大量报表,该业务并未给出拿取报表数据的接口,每天报表会发送到一个邮箱中以附件发送,但每日的邮件过多,需要自己登陆邮箱一个一个附件下载下来比较繁琐,现在要写...
  • 6位QQ邮箱免费下载了哦 6位QQ邮箱免费下载了哦 6位QQ邮箱免费下载了哦 6位QQ邮箱免费下载了哦
  • 5位QQ邮箱免费下载了哦 5位QQ邮箱免费下载了哦 5位QQ邮箱免费下载了哦 5位QQ邮箱免费下载了哦
  • 背景由于同学每周要通过邮箱收数学建模作业,100多人给她发附件,她要一个个地点着下载。太麻烦了,所以想用程序实现下载附件的功能。在网上查资料后,最终实现了稍为简单的下载附件功能,代码有些细节还不是很了解...
  • Gmail 邮箱UI界面设计.sketch素材下载 sketch、邮箱APP设计、邮箱UI界面
  • 简洁的邮箱网站UI模板 .psd素材下载 PSD、网站UI、邮箱APP设计、邮箱UI界面、邮箱网站

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,158
精华内容 5,263
关键字:

下载邮箱