网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java语言深入:对 java.lang 的研.
.谨慎使用Date和Time类.
.Spring框架快速入门之简介.
.使用正则表达式.
.robbin的HttpSession总结.
.在Eclipse中利用XMLBuddy开发XML.
.什么是设计模式.
.XDoclet:EJB开发好帮手.
.JAVA程序员必读---编程中的一些共.
.在BS系统中使用模态对话框(showM.
.XML 和SOA 安全问题仍.
.Java入门(5) JAVA语言基本语法.
.改进JAVA字符串分解的方法.
.简述JAVA对象的产生与使用.
.书评:Java的盛宴(上).
.JAVA中正则表达式的应用(1).
.JVM学习笔记之一.
.探索Application Server的世界.
.如何将BufferedImage实例保存为B.
.巧用GC.

使用SMTP协议发送邮件

发表日期:2008-1-5



  使用SMTP协议发送邮件,可以不通过SMTP服务器,直接将邮件发送到邮件服务器。很多服务器端程序可能需要向很多用户发送邮件,直接通过SMTP发送可能是最有效的。

关于SMTP协议定义在RFC821,可以在此看中文版。

第一步:通过目标email查找邮件服务器。
例如:asklxf@sohu.com,其邮件服务器地址为:sohumx.sohu.com

import Java.net.*;
import java.io.*;
import java.util.*;
import javax.naming.*;
import javax.naming.Directory.*;

public class Smtp {

    public static void main(String[] args) throws Exception {
        // DNS服务器,看看本机的DNS配置
        String dns = "dns://192.168.1.1";
        // 邮箱后缀:
        String domain = "sohu.com";
        Hashtable env = new Hashtable();
        env.put("java.naming.factory.initial", "com.sun.jndi.dns.DnsContextFactory");
        env.put("java.naming.provider.url", dns);
        DirContext ctx = new InitialDirContext(env);
        Attributes attr = ctx.getAttributes(domain, new String[]{"MX" });
        NamingEnumeration servers = attr.getAll();
        // 列出所有邮件服务器:
        while(servers.hasMore()) {
            System.out.println(servers.next());
        }
    }
}

第二步:直接连接邮件服务器的25端口,用SMTP协议发送邮件。
这里使用sohu信箱,邮件服务器为sohumx.sohu.com,收信人必须在此服务器上:

import java.net.*;
import java.io.*;
import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;

public class Smtp {

    private static String END_FLAG = "\r\n";

    public static void main(String[] args) throws Exception {
        String mx = "sohumx.sohu.com";
        InetAddress addr = InetAddress.getByName(mx);
        Socket socket = new Socket(addr, 25);

        InputStream in = socket.getInputStream();
        OutputStream out = socket.getOutputStream();


上一篇:Class文件详解 (2) 人气:613
下一篇:Hibernate 能够满足我们的验证需求 人气:598
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐