`
hwpok
  • 浏览: 250735 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

电子邮件那点事儿

    博客分类:
  • Java
阅读更多
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->package org.hvp.test;

import java.util.Hashtable;

import javax.naming.NamingException;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

/**
 * 
@author "惠万鹏"
 *
 
*/
public class Smtp
{
    
public static String getSmtpServer(String dns, String domain)
            
throws NamingException
    {
        
/** 如果domain传入的是一个email */
        
if (domain.indexOf("@"> 0)
        {
            domain 
= domain.substring(domain.indexOf("@"+ 1);
        }
        Hashtable
<String, String> properties = new Hashtable<String, String>();
        properties.put(
"java.naming.factory.initial","com.sun.jndi.dns.DnsContextFactory");
        properties.put(
"java.naming.provider.url""dns://" + dns);
        DirContext ctx 
= new InitialDirContext(properties);
        Attributes attributes 
= ctx.getAttributes(domain, new String[] { "MX" });
        String recordMx 
= (String) attributes.get("MX").get();
        
if (recordMx != null)
        {
            recordMx 
= recordMx.substring(recordMx.indexOf(" "+ 1);
        }
        System.out.println(
"-------->" + recordMx + "<-------");
        
return recordMx;
    }
    
    
    
    
public static void main(String[] args) throws NamingException
    {
        Smtp.getSmtpServer(
"10.1.3.210""hwpok@163.com"); 
    }
}


<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->package org.hvp.test;

import java.net.*;
import java.io.*;

public class Test {

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

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

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

        
// 连接成功后服务器会响应:
        response(in);

        
// 首先发送HELO命令:
        send("HELO www.javasprite.com" + END_FLAG, out);
        response(in);

        
// 然后发送发件人地址:
        send("MAIL FROM: someone@somewhere.com" + END_FLAG, out);
        response(in);

        
// 设置收件人地址:
        send("RCPT TO: hwpok@163.com" + END_FLAG, out);
        response(in);

        
// 开始发送邮件正文:
        send("DATA" + END_FLAG, out);
        response(in);

        send(
"From: someone@somewhere.com" + END_FLAG, out);
        send(
"To: hwpok@163.com" + END_FLAG, out);
        send(
"Subject: Test without smtp server" + END_FLAG, out);
        send(
"Content-Type: text/plain;" + END_FLAG, out);
        send(END_FLAG 
+ END_FLAG, out);

        
// 发送邮件正文,如果用中文,需要BASE64编码:
        send("text message body!" + END_FLAG, out);
        
// 每行以\r\n结束,不可过长,可拆成多行。

        
// 以"\r\n.\r\n"作为结束标志:
        send(END_FLAG + "." + END_FLAG, out);
        response(in);

        
// 结束并确认发送:
        send("QUIT" + END_FLAG, out);
        response(in);
        in.close();
        out.close();
        socket.close();
    }

    
public static void response(InputStream in) throws Exception {
        
byte[] buffer = new byte[102400];
        
int n = in.read(buffer);
        
if(n>0){
            String s 
= new String(buffer, 0, n);
            System.out.println(s);
        }
    }

    
public static void send(String s, OutputStream out) throws Exception {
        
byte[] buffer = s.getBytes();
        
if(buffer != null && buffer.length>0)
        {
            out.write(buffer);
            out.flush();
        }
    }
}



分享到:
评论

相关推荐

    电子商务那点事

    标题“电子商务那点事”和描述中提到的凡客等电商品牌,可能采取的销售策略和用户体验优化措施涉及到电子商务的多个层面。首先,关于关联销售策略,这是一种营销手段,旨在通过提供额外的产品或服务来增加单个客户的...

    一种基于Linux的多功能安全电子邮件服务器的设计与实现

    ### 基于Linux的多功能安全电子邮件服务器设计与实现 #### 概述 在现代通信领域,电子邮件已逐渐成为日常沟通的重要工具,承载着大量文本、图像、音频和视频等数据的传输。然而,随着互联网的普及和发展,邮件...

    英文电子邮件,涉及各个领域

    以下是一些英文电子邮件写作的重要知识点: 1. **邮件格式与结构** - **From:** 发件人的邮箱地址,用于表明邮件发送者的身份。 - **To:** 收件人的邮箱地址,收件人将收到这封邮件。 - **Subject:** 信件主题行...

    Trent电源设计那些事儿教学-视频课程资源网盘链接提取码下载 .txt

    ### Trent电源设计关键知识点概述 #### 一、课程概览 - **课程名称**:“Trent电源设计那些事儿”教学视频课程 - **课程容量**:12.5GB - **主要内容**:该课程围绕Trent电源设计展开,旨在为学员提供全面深入的...

    电子邮件书写方法.doc

    电子邮件是现代商业交流中不可或缺的工具,特别是在对日软件开发中,规范的电子邮件书写显得尤为重要。下面将详细解析电子邮件的书写方法,以便更好地与日本客户沟通。 首先,电子邮件的结构和内容应当简洁明了。...

    Slinky将你的Sketch设计导出为HTML电子邮件模板

    然而,将Sketch设计转换为适用于电子邮件的HTML模板并非易事,因为邮件客户端的兼容性和显示差异往往给这个过程带来挑战。这时,一款名为"Slinky"的工具应运而生,它能帮助开发者和设计师轻松地将Sketch设计转化为高...

    商务电子邮件格式范文.docx

    商务电子邮件是商业沟通的重要工具,尤其在现代数字化的工作环境中,规范、有效的电子邮件格式能提升工作效率,维护专业形象。以下是对商务电子邮件格式的详细说明: 1. **标题**:标题是邮件的精华摘要,应简洁...

    英文电子邮件集锦【外企公司内部资料】.doc

    电子邮件是现代商务和日常交流的重要工具,尤其是在外企中。这篇文档收集了100篇英文电子邮件实例,涵盖了工作、学习和生活的各个方面,旨在帮助读者理解和掌握撰写有效英文邮件的技巧。这些例子对于提高英文写作...

    电子邮件攻击趋势与应对最佳实践分享.pdf

    电子邮件是网络犯罪分子主要使用的高级网络攻击方式(如勒索软件和凭据窃取)以攻击受害者,有调查... FireEye的技术顾问剖析高级电子邮件安全解决方案需要注意事項,如何评估增强型增强电子邮件安全解决方案的步骤。

    Email_Class:基于结构化功能的电子邮件分类

    电子邮件分类什么事啊该项目根据电子邮件的元数据创建电子邮件的多类分类。使用了什么数据? 使用了两个单独的数据文件-一个用于训练,一个用于测试。 每个都包含以下有关电子邮件的信息: date -Unix样式的日期格式...

    软件开发这点事(邵志东)

    - `User_Person_User`表包含了用户ID、电子邮件、行业类型、用户类型、密码等核心字段,用于管理用户账号。 - `User_Person_DetailsInformation`表则包含更详细的个人信息,如地址、证件信息等,用于完善用户资料。 ...

    超级有效十类英文电子邮件高频句.pdf

    这些句子涵盖了电子邮件交流中的常见场景,包括问候、发起会议、寻求信息、反馈建议、提供意见、确认细节、提供帮助、表达感谢、道歉以及结束语和紧急情况处理。熟悉并掌握这些高频句,将有助于你在职场中更有效地用...

    即事通Just

    即事通是多益特网络技术有限公司出品的一款功能强大的桌面软件,软件组合了即时通讯,电子邮件,文档共享,日程管理和联系人管理等诸多功能。适合于企业个人,团队等应用场合,即事通软件采用当今最先进的WEB技术和...

    用python实现邮箱功能

    因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python...

    mysigmail:UI电子邮件签名生成器-轻松创建电子邮件签名

    即使对于具有HTML和CSS知识的人来说,创建电子邮件签名也不是一件容易的事。 普通用户呢? 互联网上有许多解决方案,其中大多数都是付费的。 有免费的,但所有这些都是封闭源。 我想制作一个具有用户友好界面和开源...

    bootstrap-email:Bootstrap 4(以及即将推出的5)样式表,编译器和内联代码,用于使用您熟悉和喜爱的Bootstrap语法进行响应和一致的电子邮件

    由于电子邮件与网络之间的细微差别,在电子邮件中使用HTML绝非易事。 使用Bootstrap Email,您不必了解所有细微差别,它使您可以像编写网站一样编写电子邮件。 建立 您可以通过几种不同的方式使用Bootstrap电子邮件...

    dnsaur:ruby 的 DNS 检查器和电子邮件建议器

    #Dnsaur Dnsaur 是一个简单的 ruby​​ 的 DNS 检查器/电子邮件校正器。 这颗宝石可以做三件事; 当用户拼错一个域时,它会建议正确的拼写,它提供简单的反向 DNS 帮助器方法来帮助验证这些电子邮件,并将电子邮件...

    商务邮件写作(英文)

    在现代商务环境中,电子邮件已成为日常交流的重要工具,尤其是在国际商务活动中,英文商务邮件更是不可或缺的沟通方式。本文将深入探讨商务邮件的写作规范,帮助您掌握撰写专业、有效邮件的关键要素。 1. **信头...

    disposable-mailbox:使用catch-all和imap的自托管一次性电子邮件服务(php)

    (所有电子邮件都转到一个邮箱)。 在你开始之前 :red_exclamation_mark: 订阅 收到有关问题和错误修正的通知。 这是Beta版软件,。 欢迎捐款! :red_heart: 许可证: GPL-3.0 。 您可以修改此应用程序并在任何...

Global site tag (gtag.js) - Google Analytics