电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)戰(zhàn)之基于swing的QQ郵件收發(fā)功能實(shí)現(xiàn)

瀏覽:162日期:2022-05-22 17:31:04
一、電子郵件詳解 假設(shè)自己的電子郵件是me@163.com,對(duì)方的郵件是you@163.com

我們編寫(xiě)好文件填寫(xiě)好對(duì)方文件,點(diǎn)擊發(fā)送,這些電子郵件就發(fā)出去了

而這些電子郵件被稱(chēng)為MUA:Mail User Agent——郵件用戶(hù)代理。

Email發(fā)送出去的時(shí)候,不是直接到達(dá)對(duì)方的電腦,而是先發(fā)送到MTA:Mail Transfer Agent——郵件傳輸代理。如:網(wǎng)易 Email到達(dá)MTA后,MTA會(huì)把Emain投遞到郵件的最終目的MDA:Mail Delivery Agent——郵件投遞代理。如何存放在某個(gè)服務(wù)器上,我們將這個(gè)長(zhǎng)期保存的地方叫做電子郵件郵箱。

Email不會(huì)直接到達(dá)對(duì)方的電腦,因?yàn)殡娔X不一定開(kāi)機(jī),開(kāi)機(jī)不一定對(duì)方要取郵件,必須通過(guò)MUA從MDA把郵件取到自己的電腦上面。

有了上述概念,編寫(xiě)程序來(lái)收發(fā)和接受文件,本質(zhì)上就是:

1.編寫(xiě)MUA把郵件發(fā)送到MTA

2.編寫(xiě)MUA從MDA上收郵件

發(fā)郵件時(shí),MUA和MTA使用的協(xié)議就是SMTP:Simple Mail Transfer Protocol,后面的MTA到另一個(gè)MTA也是用SMTP協(xié)議。

收郵件的時(shí)候,MUA和MDA使用的協(xié)議有兩種:POP:Post Office Protocol,即POP3;IMAP:Internet Message Access Protocol

二、郵件發(fā)送

import com.sun.mail.util.MailSSLSocketFactory;import javax.swing.*;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Properties;/** * 郵件發(fā)送 * * @author ltl */public class SendEmailManger extends Thread { private String mailAdr;//郵箱 private String content;//郵件的內(nèi)容 private String subject;//郵件的題目 public SendEmailManger(String mailAdr, String subject, String content) {super();this.mailAdr = mailAdr;this.subject = subject;this.content = content; } @Override public void run() {super.run();try { sendMail(mailAdr, subject, content);} catch (Exception e) { e.printStackTrace();} } private void sendMail(String mailAdr, String subject, String content) throws Exception {//加密的郵件套接字協(xié)議工廠MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);final Properties props = new Properties();// 表示SMTP發(fā)送郵件,需要進(jìn)行身份驗(yàn)證props.put('mail.transport.protocol', 'smtp');props.put('mail.smtp.auth', 'true');props.put('mail.smtp.host', 'smtp.qq.com');// smtp登陸的賬號(hào)、密碼 ;需開(kāi)啟smtp登陸props.setProperty('mail.debug', 'true');props.put('mail.user', '此處寫(xiě)你的qq郵箱');props.put('mail.password', '此處寫(xiě)你的QQ授權(quán)碼');// 特別需要注意,要將ssl協(xié)議設(shè)置為true,否則會(huì)報(bào)530錯(cuò)誤props.put('mail.smtp.ssl.enable', 'true');props.put('mail.smtp.ssl.socketFactory', sf);Authenticator authenticator = new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() {// 用戶(hù)名、密碼String userName = props.getProperty('mail.user');String password = props.getProperty('mail.password');return new PasswordAuthentication(userName, password); }};// 使用環(huán)境屬性和授權(quán)信息,創(chuàng)建郵件會(huì)話(huà)Session mailSession = Session.getInstance(props, authenticator);// 創(chuàng)建郵件消息MimeMessage message = new MimeMessage(mailSession);// 設(shè)置發(fā)件人try { InternetAddress form = new InternetAddress(props.getProperty('mail.user')); message.setFrom(form); // 設(shè)置收件人 InternetAddress to = new InternetAddress(mailAdr); message.setRecipient(Message.RecipientType.TO, to); // 設(shè)置郵件標(biāo)題 message.setSubject(subject); // 設(shè)置郵件的內(nèi)容體 message.setContent(content, 'text/html;charset=UTF-8'); // 發(fā)送郵件 Transport.send(message);} catch (MessagingException e) { e.printStackTrace();} } public static void main(String[] args) {// 1. 創(chuàng)建一個(gè)頂層容器(窗口)JFrame jf = new JFrame('發(fā)送郵件');jf.setSize(500, 500);jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);// 2. 創(chuàng)建中間容器(面板容器)JPanel panel = new JPanel(null);// 3. 創(chuàng)建一個(gè)基本組件(按鈕),并添加到 面板容器 中JLabel jla1 = new JLabel('收件郵箱: ');jla1.setLocation(50,50);jla1.setSize(100, 50);jla1.setFont(new Font('123', 5, 20)); final JTextField textField = new JTextField(8);textField.setFont(new Font('mailAdr', Font.PLAIN, 20));textField.setLocation(150,50);textField.setSize(250, 50);JLabel jla2 = new JLabel('郵件標(biāo)題: ');jla2.setLocation(50,150);jla2.setSize(100, 50);jla2.setFont(new Font('123', 5, 20));final JTextField textField1 = new JTextField(8);textField1.setFont(new Font('subject', Font.PLAIN, 20));textField1.setLocation(150,150);textField1.setSize(250, 50);JLabel jla3 = new JLabel('郵件內(nèi)容: ');jla3.setLocation(50,250);jla3.setSize(100, 50);jla3.setFont(new Font('123', 5, 20));final JTextField textField3 = new JTextField(8);textField3.setFont(new Font('content', Font.PLAIN, 20));textField3.setLocation(150,250);textField3.setSize(250, 50);JButton btn = new JButton('發(fā)送郵件');btn.setLocation(50,350);btn.setSize(100, 50);btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {SendEmailManger d = new SendEmailManger(textField.getText(), textField1.getText(), textField3.getText());d.start(); }});panel.add(jla1);panel.add(jla2);panel.add(jla3);panel.add(textField);panel.add(textField1);panel.add(textField3);panel.add(btn);// 4. 把 面板容器 作為窗口的內(nèi)容面板 設(shè)置到 窗口jf.setContentPane(panel);// 5. 顯示窗口,前面創(chuàng)建的信息都在內(nèi)存中,通過(guò) jf.setVisible(true) 把內(nèi)存中的窗口顯示在屏幕上。jf.setVisible(true); }}三、郵件接收

import com.sun.mail.util.MailSSLSocketFactory;import com.sun.org.apache.bcel.internal.generic.NEW;import javax.mail.*;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Date;import java.util.Properties;public class ReceiveEmailManger extends Thread { public static void main(String[] args){// 1. 創(chuàng)建一個(gè)頂層容器(窗口)JFrame jf = new JFrame('接收郵件');jf.setSize(500, 500);jf.setLocationRelativeTo(null);jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);JPanel panel = new JPanel(null);JLabel jla2 = new JLabel('標(biāo)題: ');jla2.setLocation(50,50);jla2.setSize(150, 50);jla2.setFont(new Font('123', 5, 20));final JTextField textField1 = new JTextField(8);textField1.setFont(new Font('subject', Font.PLAIN, 20));textField1.setLocation(150,50);textField1.setSize(250, 50);JLabel jla3 = new JLabel('郵件內(nèi)容: ');jla3.setLocation(50,150);jla3.setSize(150, 50);jla3.setFont(new Font('123', 5, 20));final JTextField textField3 = new JTextField(8);textField3.setFont(new Font('content', Font.PLAIN, 20));textField3.setLocation(150,150);textField3.setSize(250, 50); final JTextArea jta = new JTextArea();jta.setLocation(150,150);jta.setSize(250, 200);jta.setFont(new Font('content', Font.PLAIN, 30));JButton btn = new JButton('接收郵件');btn.setLocation(150,380);btn.setSize(100, 50);btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {try {ReceiveEmailManger re = new ReceiveEmailManger(); String [] mess = re.ReceiveEmailManger(); textField1.setText(mess[1]); jta.setText(mess[2]);}catch (Exception ea){ ea.printStackTrace();} }});panel.add(jla2);panel.add(jla3);panel.add(textField1);panel.add(btn);panel.add(jta);// 4. 把 面板容器 作為窗口的內(nèi)容面板 設(shè)置到 窗口jf.setContentPane(panel);// 5. 顯示窗口,前面創(chuàng)建的信息都在內(nèi)存中,通過(guò) jf.setVisible(true) 把內(nèi)存中的窗口顯示在屏幕上。jf.setVisible(true); } public String[] ReceiveEmailManger() throws Exception {//加密的郵件套接字協(xié)議工廠MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);String pop3Server = 'pop.qq.com';String protocol = 'pop3';String username = '此處填寫(xiě)qq郵箱';String password = '此處填寫(xiě)QQ授權(quán)碼';Properties prop = new Properties();prop.put('mail.store.protocol', protocol);prop.put('mail.pop3.host', pop3Server);// 特別需要注意,要將ssl協(xié)議設(shè)置為true,否則會(huì)報(bào)530錯(cuò)誤prop.put('mail.pop3.ssl.enable', 'true');prop.put('mail.pop3.ssl.socketFactory', sf);Session mailSession = Session.getDefaultInstance(prop,null);mailSession.setDebug(false);String [] mess = new String[3];try { Store store = mailSession.getStore(protocol); //登錄驗(yàn)證 store.connect(pop3Server,username,password); //獲得用戶(hù)的郵件賬戶(hù),注意通過(guò)pop3協(xié)議獲取某個(gè)郵件夾的名稱(chēng)只能為inbox Folder folder = store.getFolder('inbox'); //設(shè)置訪問(wèn)權(quán)限 folder.open(Folder.READ_ONLY); //獲取所有郵件 int size = folder.getMessageCount(); Message message = folder.getMessage(size); //獲取第一封發(fā)件人地址 String from = message.getFrom()[0].toString(); //獲取第一封郵件標(biāo)題 String subject = message.getSubject(); //獲取第一封郵件內(nèi)容 String conten = message.getContent().toString(); mess[0]=from; mess[1]=subject; mess[2]=conten;folder.close(false); store.close();}catch(Exception e) { e.printStackTrace();}return mess; }}四、導(dǎo)包

使用IDEA編程,在pom.xml文件下導(dǎo)入依賴(lài)包

<!-- java發(fā)送郵件jar包 --><dependencies> <dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version> </dependency></dependencies>

到此這篇關(guān)于Java實(shí)戰(zhàn)之基于swing的QQ郵件收發(fā)功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)基于Java swing的QQ郵件收發(fā)功能實(shí)現(xiàn)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: qq
相關(guān)文章:
主站蜘蛛池模板: 好物生环保网、环保论坛 - 环保人的学习交流平台| 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | 玄米影院| 德国UST优斯特氢气检漏仪-德国舒赐乙烷检测仪-北京泽钏 | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 全自动包装秤_全自动上袋机_全自动套袋机_高位码垛机_全自动包装码垛系统生产线-三维汉界机器(山东)股份有限公司 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 泰兴市热钻机械有限公司-热熔钻孔机-数控热熔钻-热熔钻孔攻牙一体机 | FFU_空气初效|中效|高效过滤器_空调过滤网-广州梓净净化设备有限公司 | 高中学习网-高考生信息学习必备平台 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 衬氟止回阀_衬氟闸阀_衬氟三通球阀_衬四氟阀门_衬氟阀门厂-浙江利尔多阀门有限公司 | 拉力测试机|材料拉伸试验机|电子拉力机价格|万能试验机厂家|苏州皖仪实验仪器有限公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 新型锤式破碎机_新型圆锥式_新型颚式破碎机_反击式打沙机_锤式制砂机_青州建源机械 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 书信之家_书信标准模板范文大全| 二手注塑机回收_旧注塑机回收_二手注塑机买卖 - 大鑫二手注塑机 二手光谱仪维修-德国OBLF光谱仪|进口斯派克光谱仪-热电ARL光谱仪-意大利GNR光谱仪-永晖检测 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 寮步纸箱厂_东莞纸箱厂 _东莞纸箱加工厂-东莞市寮步恒辉纸制品厂 | 快速门厂家批发_PVC快速卷帘门_高速门_高速卷帘门-广州万盛门业 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 学考网学历中心| 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | 点胶机_点胶阀_自动点胶机_智能点胶机_喷胶机_点胶机厂家【欧力克斯】 | 德州万泰装饰 - 万泰装饰装修设计软装家居馆 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 塑料撕碎机_编织袋撕碎机_废纸撕碎机_生活垃圾撕碎机_废铁破碎机_河南鑫世昌机械制造有限公司 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 威客电竞(vk·game)·电子竞技赛事官网 | 二手电脑回收_二手打印机回收_二手复印机回_硒鼓墨盒回收-广州益美二手电脑回收公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 焊锡丝|焊锡条|无铅锡条|无铅锡丝|无铅焊锡线|低温锡膏-深圳市川崎锡业科技有限公司 |