Javaの実戦的なswingに基づくQQメールの送受信機能が実現されます。
一、電子メールの詳細自分の電子メールは[email protected]相手のメールは[email protected] 私たちは書類を作成して相手の書類を記入し、送信をクリックして、これらの電子メールを送りました。
これらの電子メールはMUA:Mail User Agentと呼ばれる。メールユーザエージェント。メールを送る時は、直接相手のコンピュータに届くのではなく、MTA:Mail Transfer Agentに送ってください。網易 EmailがMTAに到着したら、MTAはEmailをメールの最終目的MDA:Mail Delivery Agentに配達します。どのようにサーバーに保存しますか?私達はこの長期保存のところをメールボックスといいます。 Emailは直接相手のコンピュータに到着しません。コンピュータが起動するとは限らないので、起動は相手がメールを取る必要がありません。MDAを通じてMDAから自分のコンピュータにメールを取りに行かなければなりません。
上記のような概念があります。プログラムを作成してファイルを送受信します。本質的には:
1.MUAを作成してMTAにメールを送ります。
2.MUAを作成してMDAからメールを受信する
メールを送る時、MUAとMTAで使うプロトコルはSMTP:Simple Mail Transfer Protocolです。後ろのMTAから他のMTAまでもSMTPプロトコルを使います。
メールを受け取る時、MUAとMDAで使うプロトコルは二つあります。POP:Post Office Protocol、つまりPOP 3;IMAP:インターネットメッセージングAccess Protocol
二、メール送信
IDEAプログラミングを使って、pom.xmlファイルの下に依存パッケージを導入します。
これらの電子メールはMUA:Mail User Agentと呼ばれる。メールユーザエージェント。
上記のような概念があります。プログラムを作成してファイルを送受信します。本質的には:
1.MUAを作成してMTAにメールを送ります。
2.MUAを作成してMDAからメールを受信する
メールを送る時、MUAとMTAで使うプロトコルはSMTP:Simple Mail Transfer Protocolです。後ろのMTAから他のMTAまでもSMTPプロトコルを使います。
メールを受け取る時、MUAとMDAで使うプロトコルは二つあります。POP:Post Office Protocol、つまりPOP 3;IMAP:インターネットメッセージングAccess Protocol
二、メール送信
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;
/**
*
*
* @author ltl
*/
public class SendEmailManger extends Thread {
private String mailAdr;//
private String content;//
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 {
//
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
final Properties props = new Properties();
// SMTP ,
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.qq.com");
// smtp 、 ; smtp
props.setProperty("mail.debug", "true");
props.put("mail.user", " qq ");
props.put("mail.password", " QQ ");
// , ssl true, 530
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
Authenticator authenticator = new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
// 、
String userName = props.getProperty("mail.user");
String password = props.getProperty("mail.password");
return new PasswordAuthentication(userName, password);
}
};
// ,
Session mailSession = Session.getInstance(props, authenticator);
//
MimeMessage message = new MimeMessage(mailSession);
//
try {
InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
message.setFrom(form);
//
InternetAddress to = new InternetAddress(mailAdr);
message.setRecipient(Message.RecipientType.TO, to);
//
message.setSubject(subject);
//
message.setContent(content, "text/html;charset=UTF-8");
//
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
// 1. ( )
JFrame jf = new JFrame(" ");
jf.setSize(500, 500);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
// 2. ( )
JPanel panel = new JPanel(null);
// 3. ( ),
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(" : ");
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(" : ");
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(" ");
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.
jf.setContentPane(panel);
// 5. , , jf.setVisible(true) 。
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. ( )
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(" : ");
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(" : ");
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.
jf.setContentPane(panel);
// 5. , , jf.setVisible(true) 。
jf.setVisible(true);
}
public String[] ReceiveEmailManger() throws Exception {
//
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
String pop3Server = "pop.qq.com";
String protocol = "pop3";
String username = " qq ";
String password = " QQ ";
Properties prop = new Properties();
prop.put("mail.store.protocol", protocol);
prop.put("mail.pop3.host", pop3Server);
// , ssl true, 530
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);
//
store.connect(pop3Server,username,password);
// , pop3 inbox
Folder folder = store.getFolder("inbox");
//
folder.open(Folder.READ_ONLY);
//
int size = folder.getMessageCount();
Message message = folder.getMessage(size);
//
String from = message.getFrom()[0].toString();
//
String subject = message.getSubject();
//
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;
}
}
四、コンパウンドIDEAプログラミングを使って、pom.xmlファイルの下に依存パッケージを導入します。
<!-- java jar -->
<dependencies>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
</dependencies>
ここで、Javaの実戦的なswingベースのQQメール送受信機能についての文章を紹介します。Java swingベースのQQメール送受信機能により、内容を実現します。以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。