简述
c语言,java和python都有封装smtp相关邮件协议。直接拿来用就完了。在java里要导入两个包。官网上不去可以到菜鸟教程去下。
https://www.runoob.com/java/java-sending-email.html
里面有详细的讲述。
完了怎么把两个第三方包加入项目呢?
导入jar
如果是idea的话就去file->project construction->modules里面找到导入dictionary或jar的选项,把包含你的jar的文件夹(导入文件夹下所有东西)或jar文件就完了。弄好在项目资源管理器的拓展包里能看到。
代码
package Send;
import com.sun.mail.util.MailSSLSocketFactory;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.security.GeneralSecurityException;
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.swing.*;
import java.awt.*;
public class Main extends JFrame implements ActionListener, FocusListener {
JTextField rcver;
JTextField header;
JPanel info;
JTextField mainText;
JPanel text;
JButton send;
public void Send(){
try {
Properties prop = new Properties();
prop.setProperty("mail.host", "smtp.qq.com"); 设置QQ邮件服务器
prop.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
// 关于QQ邮箱,还要设置SSL加密,加上以下代码即可
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
//使用JavaMail发送邮件的5个步骤
//创建定义整个应用程序所需的环境信息的 Session 对象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//发件人邮件用户名、授权码
return new PasswordAuthentication(
"110@qq.com", "woc");
}
});
//开启Session的debug模式,这样就可以查看到程序发送Email的运行状态
session.setDebug(true);
//2、通过session得到transport对象
Transport ts = session.getTransport();
//3、使用邮箱的用户名和授权码连上邮件服务器
ts.connect(
"smtp.qq.com", "110@qq.com", "woc");
//4、创建邮件
//创建邮件对象
MimeMessage message = new MimeMessage(session);
//指明邮件的发件人
message.setFrom(new InternetAddress("110@qq.com"));
//指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(rcver.getText()));
//邮件的标题
message.setSubject(header.getText());
//邮件的文本内容
message.setContent(mainText.getText(), "text/html;charset=UTF-8");
//5、发送邮件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (AddressException e) {
e.printStackTrace();
} catch (NoSuchProviderException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
}
public void initPanel(){
header=new JTextField("title");
header.setColumns(20);
header.addFocusListener(this);
rcver=new JTextField("receiver");
rcver.setColumns(20);
rcver.addFocusListener(this);
info =new JPanel();
info.setPreferredSize(new Dimension(500, 50));
info.setBackground(Color.white);
info.setBorder(BorderFactory.createTitledBorder("header"));
info.add(header);
info.add(rcver);
mainText=new JTextField();
mainText.setColumns(40);
mainText.addFocusListener(this);
text=new JPanel();
text.setPreferredSize(new Dimension(500, 50));
text.setBackground(Color.white);
text.setBorder(BorderFactory.createTitledBorder("Main Text"));
text.add(mainText);
send=new JButton("send");
send.addActionListener(this);
}
public void makeJFrame(){
this.setTitle("MyEmail");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.add(info);
this.add(text);
this.add(send);
this.setVisible(true);
this.setSize(520,200);
}
public Main(){
initPanel();
makeJFrame();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==send){
Send();
}
}
public void focusGained(FocusEvent e) {
Color myGray=new Color(241,243,244);
if (e.getSource()==rcver) {rcver.setText("");rcver.setBackground(myGray);}
else if (e.getSource()==header) {header.setText("");header.setBackground(myGray);}
else if (e.getSource()==mainText){ mainText.setText("");mainText.setBackground(myGray);}
}
public void focusLost(FocusEvent e) {
if (e.getSource()==rcver) {rcver.setText(rcver.getText());rcver.setBackground(Color.white);}
else if (e.getSource()==header) {header.setText(header.getText());header.setBackground(Color.white);}
else if (e.getSource()==mainText) {mainText.setText(mainText.getText());mainText.setBackground(Color.white);}
}
public static void main(String[] args) throws Exception{
new Main();
}
}