/*
1.merak邮件软件安装
2包
3图
项目改进方向 添加附件
改为桌面exe做特别的客户端
进行接受邮件的开发
网页版本练习
*/
package jgh;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.Border;
import java.awt.Toolkit;
public class MailServer extends JFrame implements ActionListener{
private static String sendProtocol = "smtp";
private static String sendHost = "localhost";
private static Session session=null;
private static JTextField [] jtxs = new JTextField[3];
private static JLabel[] Jlbs = new JLabel[5];
private static JLabel bglab;
private static JButton[] Jbus = new JButton[2];
private static JTextArea jta;
private static ImageIcon sendImg,outImg,bgImg;
public MailServer(){
init();
}
//发送图形界面
public void sendView(){
this.setLayout(null);
this.setTitle("邮件发送服务");
this.setBounds((GetSize.Swidth-650)/2, (GetSize.Sheight-400)/2, 650, 400);
bglab = new JLabel();
bglab.setBounds(0, 0, 650, 400);
sendImg = new ImageIcon("p_w_picpaths/send.png");
outImg = new ImageIcon("p_w_picpaths/out.png");
bgImg = new ImageIcon("p_w_picpaths/bg.jpg");
bglab.setIcon(bgImg);
bglab.setOpaque(false);
for(int i =0;i<3;i++){
jtxs[i] = new JTextField();
jtxs[i].setBounds(200, 40+i*45, 350, 35);
jtxs[i].setBorder(BorderFactory.createEmptyBorder());
}
for(int i =0;i<5;i++){
Jlbs[i] = new JLabel();
Jlbs[i].setForeground(Color.WHITE);
}
Jbus[0] = new JButton();
Jbus[0].addActionListener(this);
Jbus[0].setActionCommand("send");
Jbus[0].setIcon(sendImg);
Jbus[1] = new JButton();
Jbus[1].addActionListener(this);
Jbus[1].setActionCommand("out");
Jbus[1].setIcon(outImg);
Jbus[0].setBounds(240, 290, 50, 60);
Jbus[1].setBounds(430, 290, 50, 60);
Jbus[0].setOpaque(false);
Jbus[0].setBackground(Color.lightGray);
Jbus[0].setBorder(BorderFactory.createEmptyBorder());
Jbus[1].setBorder(BorderFactory.createEmptyBorder());
Jbus[1].setOpaque(false);
Jbus[1].setBackground(Color.lightGray);
Jlbs[1].setBounds(100, 50, 100, 20);
Jlbs[1].setText("收件人地址:");
Jlbs[2].setBounds(100, 92, 100, 20);
Jlbs[2].setText("发件人地址:");
Jlbs[3].setBounds(100, 140, 100, 20);
Jlbs[3].setText("主 题:");
Jlbs[4].setBounds(100, 185, 100, 20);
Jlbs[4].setText("正 文:");
jta = new JTextArea();
jta.setBounds(200, 180, 350, 90);
bglab.add(jtxs[0]);
bglab.add(jtxs[1]);
bglab.add(jtxs[2]);
bglab.add(Jlbs[0]);
bglab.add(Jlbs[1]);
bglab.add(Jlbs[2]);
bglab.add(Jlbs[3]);
bglab.add(Jlbs[4]);
bglab.add(Jbus[0]);
bglab.add(Jbus[1]);
bglab.add(jta);
this.add(bglab);
this.setVisible(true);
this.setResizable(false);
}
//初始化方法,用于创建Session对象
public static void init(){
Properties props = new Properties();//创建属性对象
props.put("mail.transport.protocol",sendProtocol);//指定邮件传输协议
props.put("mail.smtp.class", "com.sun.mail.smtp.SMTPTransport");//指定传输协议使用的类
props.put("mail.smtp.host", sendHost);//指定发送主机邮件的主机
session = Session.getDefaultInstance(props);
}
//发送邮件
public void sendMessage(String formAddr,String toAddr,String title,String text) throws Exception{
Message msg = new MimeMessage(session);
InternetAddress[] toAddrs = InternetAddress.parse(toAddr, false);//创建就收放的InternetAddress对象
msg.setRecipients(Message.RecipientType.TO,toAddrs);//指定接收方
msg.setSentDate(new Date());
msg.setSubject(title);
msg.setFrom(new InternetAddress(formAddr));
msg.setText(text);
Transport.send(msg);
JOptionPane.showMessageDialog(null, "邮件发送出成功!");
}
public static void main(String[] args) {
new MailServer().sendView();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JButton jb = (JButton) e.getSource();
if(jb.getActionCommand().equals("send")){
String formAddr = null;
try {
formAddr = new String(jtxs[1].getText().getBytes("GBK"),"UTF-8");
} catch (UnsupportedEncodingException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
String toAddr = jtxs[0].getText();
String title = jtxs[2].getText();
String text = jta.getText();
try {
sendMessage(formAddr,toAddr,title,text);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}else{
this.dispose();
}
}
}
class GetSize {
public static int Swidth;
public static int Sheight;
static{
Swidth = Toolkit.getDefaultToolkit().getScreenSize().width;
Sheight = Toolkit.getDefaultToolkit().getScreenSize().height;
}
}
/*
mail to me
w22z@qq.com
you wile gain the jar and merak
*/
转载于:https://blog.51cto.com/wzsts/1859262