运行界面如下:


源代码如下:(本程序使用的是Merak mail server)
package
com.zzk;/** * @author 任文超 * @version 1.0 * */import
java.awt.Color;import
java.awt.EventQueue;import
java.awt.Font;import
java.awt.event.ActionEvent;import
java.awt.event.ActionListener;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.JButton;import
javax.swing.JFrame;import
javax.swing.JLabel;import
javax.swing.JOptionPane;import
javax.swing.JScrollPane;import
javax.swing.JTextArea;import
javax.swing.JTextField;public
class SendMailFrame extends
JFrame { private
JTextArea ta_text; private
JTextField tf_title; private
JTextField tf_send; private
JTextField tf_receive; private
Session session;// 定义Session对象 private
String sendHost = "localhost";// 定义发送邮件的主机 private
String sendProtocol="smtp";// 定义使用的发送协议 public
static void
main(String args[]) { EventQueue.invokeLater(new
Runnable() { public
void run() { try
{ SendMailFrame frame =
new SendMailFrame(); frame.init(); frame.setVisible(true); }
catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame */ public
SendMailFrame() { super(); setTitle("发送邮件窗体"); getContentPane().setLayout(null); setBounds(100,
100, 439,
299); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final
JLabel label = new
JLabel(); label.setForeground(new
Color(0,
0, 255)); label.setFont(new
Font("", Font.BOLD,
22)); label.setText("发送电子邮件"); label.setBounds(144,
10, 185,
24); getContentPane().add(label); final
JLabel label_1 = new
JLabel(); label_1.setText("收件人地址:"); label_1.setBounds(22,
42, 85,
18); getContentPane().add(label_1); tf_receive =
new JTextField(); tf_receive.setBounds(113,
40, 287,
22); getContentPane().add(tf_receive); final
JLabel label_2 = new
JLabel(); label_2.setText("发件人地址:"); label_2.setBounds(22,
68, 78,
18); getContentPane().add(label_2); tf_send =
new JTextField(); tf_send.setBounds(113,
66, 287,
22); getContentPane().add(tf_send); final
JLabel label_3 = new
JLabel(); label_3.setText("主 题:"); label_3.setBounds(32,
92, 66,
18); getContentPane().add(label_3); tf_title =
new JTextField(); tf_title.setBounds(113,
94, 287,
22); getContentPane().add(tf_title); final
JLabel label_4 = new
JLabel(); label_4.setText("正 文:"); label_4.setBounds(34,
128, 66,
18); getContentPane().add(label_4); final
JScrollPane scrollPane = new
JScrollPane(); scrollPane.setBounds(113,
128, 287,
91); getContentPane().add(scrollPane); ta_text =
new JTextArea(); scrollPane.setViewportView(ta_text); final
JButton btn_send = new
JButton(); btn_send.addActionListener(new
ActionListener() { public
void actionPerformed(final
ActionEvent e) { String fromAddr = tf_send.getText().trim(); String toAddr = tf_receive.getText().trim();// 真实存在的目标邮件地址 String title = tf_title.getText().trim(); String text = ta_text.getText().trim(); try
{ sendMessage(fromAddr, toAddr, title, text); }
catch (Exception e1) { e1.printStackTrace(); } } }); btn_send.setText("发 送"); btn_send.setBounds(144,
225, 78,
28); getContentPane().add(btn_send); final
JButton btn_exit = new
JButton(); btn_exit.addActionListener(new
ActionListener() { public
void actionPerformed(final
ActionEvent e) { System.exit(0); } }); btn_exit.setText("退 出"); btn_exit.setBounds(279,
225, 78,
28); getContentPane().add(btn_exit); } public
void init() throws
Exception { 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);// 创建Session对象 } /** * @param fromAddr 发送者 * @param toAddr 接收者 * @param title 主题 * @param text 内容 * @throws Exception 异常 */ public
void sendMessage(String fromAddr,String toAddr,String title,String text)
throws Exception { Message msg =
new MimeMessage(session);// 创建Message对象 InternetAddress[] toAddrs = InternetAddress.parse(toAddr,false);//
创建接收方的InternetAddress对象 msg.setRecipients(Message.RecipientType.TO, toAddrs);// 指定接收方 msg.setSentDate(new
Date());// 指定接发送日期 msg.setSubject(title);// 设置主题 msg.setFrom(new
InternetAddress(fromAddr));// 指定发送者 msg.setText(text);// 指定发送内容 Transport.send(msg);// 发送邮件 JOptionPane.showMessageDialog(null,
"邮件发送成功。"); }}
335

被折叠的 条评论
为什么被折叠?



