博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的邮件客户端
阅读量:6676 次
发布时间:2019-06-25

本文共 5289 字,大约阅读时间需要 17 分钟。

运行界面如下:

源代码如下:(本程序使用的是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, "邮件发送成功。");    }}

  

转载地址:http://eygxo.baihongyu.com/

你可能感兴趣的文章
Round() 四舍五入 js银行家算法
查看>>
hdu 5594 ZYB's Prime 最大流
查看>>
Android - HelloWorld的Layout内容
查看>>
#Linux学习笔记# Linux文件的所有者、群组和其他人
查看>>
最近反思
查看>>
java四舍五入的取舍
查看>>
Maven支撑下的War应用依赖另外一个WAR应用的解决方案
查看>>
JavaScrip——练习(做悬浮框)
查看>>
从游戏开发到应用开发的转变
查看>>
UIApearance
查看>>
android: LayoutInflater使用
查看>>
phalcon的url大小写的问题
查看>>
Tair ldb(leveldb存储引擎)实现介绍
查看>>
【Swift 2.1】为 UIView 添加点击事件和点击效果
查看>>
[ROS]3 Linux编程练习
查看>>
Codeforces 67C Sequence of Balls 编辑距离 dp
查看>>
Git 创建仓库【转】
查看>>
8VC Venture Cup 2016 - Elimination Round C. Block Towers 二分
查看>>
epoll的LT和ET模式
查看>>
Android IOS WebRTC 音视频开发总结(六四)-- webrtc能走多远我不知道,但这个市场真实存在...
查看>>