【Java网络】STMP邮件协议 发送客户端
来源:互联网 发布:福州三城网络 编辑:程序博客网 时间:2024/05/16 14:17
1. SMTP 协议简介
simple mail Transfer Protocal:简称传输协议,是应用vengeance的协议。建立在TCP/IP的协议之上。SMTP协议规定了把邮件从发送方传输的
接受方的规则
SMTP 客户程序请求发送邮件,SMTP服务器负责吧邮件传输到目的地。默认情况下,SMTP服务器监听25端口。在SMTP客户与SMTP服务器的一次绘画过程中,SMTP客户户发送一些列SMTP命令,SMTP服务器则做出相应,返回相应的应答码,以及对应答码描述。
主要的SMTP命令:
2. 发送过程
1.首先创建于SMTP服务器链接的socket对象。
2.当链接成功,SMTP服务器就会返回一个应答码为220 的相应,表示服务就绪。
3.接着sendMail()方法开始发送‘HELLO’。‘MAILFROM“,”RCPT TO“等命令,每条命令都按航发送,即以”\r\n"结束。每发送完一条命令后,都会等接收到了SMTP服务器的响应数据,然后再发送另一条命令。
实现;
package STMP;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(){//设置framesetSize(500,600);setTitle("send Mail");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);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);System.out.println("Look at here");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);setVisible(true);//给发送按钮注册监听器sendButton.addActionListener(new ActionListener(){@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubcomm.setText("");sendMail(server.getText().trim(),from.getText().trim(),to.getText().trim(),message.getText().trim());}});}//发送邮件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(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) {// TODO Auto-generated method stubnew SendMail();}}
0 0
- 【Java网络】STMP邮件协议 发送客户端
- 邮件发送协议 stmp
- Java 采用stmp协议发送邮件
- java实现126邮箱邮件发送,使用stmp协议
- Java利用stmp协议实现简单邮件发送功能
- JavaMail stmp协议 发送邮件例子
- stmp协议以及邮件的发送
- java STMP协议群发邮件时有无效地址导致发送邮件失败
- stmp 邮件发送
- 使用stmp发送邮件
- php stmp邮件发送
- stmp邮件协议讲解
- Python学习笔记 --- 利用STMP协议发送邮件
- c++使用stmp协议发送邮件(163的邮箱,TTL非SSL)
- 邮件是怎么发送和接收的(STMP和POP3/IMAP协议)
- java网络编程三:基于SMTP的邮件发送客户端
- java网络编程三:基于SMTP的邮件发送客户端
- java网络编程三:基于SMTP的邮件发送客户端
- Unity3D学习笔记——组件之Effects(效果/特效)——Particle Sy...
- Unity3D学习笔记——NGUI之UIToggle
- HOWTO install Oracle 11g on Ubuntu Linux 12.04 (Precise Pangolin) 64bits
- Unity3D游戏开发之在Unity3D中实现视频播放
- 流水账之“Android开发环境配置”
- 【Java网络】STMP邮件协议 发送客户端
- sublime2 无法ctrl b编译问题!
- Unity3d Shader开发(三)Pass(Texturing )
- 最大连续子序列http://acm.hdu.edu.cn/showproblem.php?pid=1231
- Unity3d Shader开发(三)Pass(Culling & Depth Testing)
- Scala 集合简单示例
- Unity3d Shader开发(一)Properties
- Git创建与管理远程分支
- POJ2386(水坑)