java网络编程三:基于SMTP的邮件发送客户端
2011-10-28 16:32
691 查看
1、SMTP简介
2、发送过程
3、源代码示例
2、发送过程
3、源代码示例
package demo.net; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import java.io.PrintWriter; import java.net.InetAddress; import java.net.Socket; import java.util.Scanner; import javax.swing.*; /* * 发送邮件客户端 */ public class SendMail extends JFrame { private JTextField from; private JTextField to; private JTextField server; private JTextArea message; private JTextArea comm; private Scanner in; private PrintWriter out; public SendMail() { // 设置frame setSize(500, 600); setTitle("send mail"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); this.setLocationRelativeTo(null); // 往frame中添加组件 JPanel p1 = new JPanel(new GridLayout(3, 2)); p1.add(new JLabel("from:")); from = new JTextField(20); p1.add(from); p1.add(new JLabel("to:")); to = new JTextField(20); p1.add(to); p1.add(new JLabel("SMTP server:")); server = new JTextField(20); p1.add(server); add(p1, BorderLayout.NORTH); JPanel p2 = new JPanel(new GridLayout(2, 1)); message = new JTextArea(); p2.add(new JScrollPane(message)); comm = new JTextArea(); comm.setEditable(false); p2.add(new JScrollPane(comm)); add(p2, BorderLayout.CENTER); JPanel p3 = new JPanel(); JButton sendButton = new JButton("Send"); p3.add(sendButton); add(p3, BorderLayout.SOUTH); // 给发送按钮注册监听器 sendButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { comm.setText(""); sendMail(server.getText().trim(), from.getText().trim(), to .getText().trim(), message.getText()); } }); } // 发送邮件 public void sendMail(String server, String from, String to, String message) { try { Socket s = new Socket(server, 25); try { in = new Scanner(s.getInputStream()); out = new PrintWriter(s.getOutputStream(), true/* 表示自动刷新 */); String hostName = InetAddress.getLocalHost().getHostName(); receive(); send("HELLO" + hostName);// 握手,成功返回220表示服务就绪 receive(); send("MAIL FROM:<" + from + ">");//发件人邮箱 receive(); send("RCPT TO:<" + to + ">");//收件人邮箱 receive(); send("DATA");//表示开始发邮件内容了 receive(); send(message);//发送邮件你内容 send("."); receive(); send("QUIT"); } finally { s.close(); } } catch (IOException e) { comm.append("Error: " + e); } } // 发送 private void send(String s) { comm.append(s + '\n'); out.print(s); out.print("\r\n"); out.flush(); } // 接收 private void receive() { comm.append(in.nextLine() + '\n'); } public static void main(String[] args) { new SendMail(); } }
相关文章推荐
- java网络编程三:基于SMTP的邮件发送客户端
- java网络编程三:基于SMTP的邮件发送客户端
- java网络编程三:基于SMTP的邮件发送客户端
- 基于SMTP的JAVA邮件发送程序!
- 再谈用java实现Smtp发送邮件之Socket编程
- 基于SMTP的JAVA邮件发送程序
- Python简单学习(lecture7)CGI编程、MySQL、网络编程、SMTP发送邮件
- {网络编程}和{多线程}应用:基于TCP协议【实现多个客户端发送文件给一个服务器端】--练习
- Java网络编程之JavaMail发送邮件和接受邮件
- C# 网络编程之基于SMTP发送电子邮件
- Java网络编程之JavaMail发送邮件和接受邮件
- Java网络编程之JavaMail发送邮件和接受邮件
- java网络编程实现客户端连接服务器端,并发送消息例子(1)。(阻塞式的方法)
- Java网络编程之JavaMail发送邮件和接受邮件
- java网络编程基于TCP的多客户端连接服务器
- C# 网络编程之基于SMTP发送电子邮件
- Java实现基于SMTP发送邮件的工具类
- 【转】javamail-基于SMTP的JAVA邮件发送程序!
- C# 网络编程之基于SMTP发送电子邮件
- java:网络编程(一/基于Socket的单客户端连接)