`
johnston678
  • 浏览: 31182 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

一个简单的邮件收发程序

阅读更多
package net.csdn.blog.johnston.mail;
import javax.mail.*; 

  

  

public class MailAuthenticator extends Authenticator 

{ 

    //****************************** 

    //由于发送邮件的地方比较多, 

    //下面统一定义用户名,口令. 

    //****************************** 

//    public static String HUAWEI_MAIL_USER = "cecfhelp"; 

//    public static String HUAWEI_MAIL_PASSWORD = "hEl66P666"; 

    public static String HUAWEI_MAIL_USER = "lisunchang678"; 
    public static String HUAWEI_MAIL_PASSWORD = "lsc6312217"; 

//  public static String HUAWEI_MAIL_USER = "309341935"; 
//
//  public static String HUAWEI_MAIL_PASSWORD = "lsc6028517"; 

    public MailAuthenticator() 

    { 

    } 

  

    protected PasswordAuthentication getPasswordAuthentication() 

    { 

        return new PasswordAuthentication(HUAWEI_MAIL_USER, HUAWEI_MAIL_PASSWORD); 

    } 

  

} 


package net.csdn.blog.johnston.mail;

/** 

 * 此处插入类型说明。 

 * 创建日期:(2009-06-23) 

 * @author:johnston

 */

import java.util.*;

import java.io.*;

import javax.mail.*;

import javax.mail.internet.*;

import javax.activation.*;

public class SendMail {

	// 要发送Mail地址

	private String mailTo = null;

	// Mail发送的起始地址

	private String mailFrom = null;

	// SMTP主机地址

	private String smtpHost = null;

	// 是否采用调试方式

	private boolean debug = false;

	private String messageBasePath = null;

	// Mail主题

	private String subject;

	// Mail内容

	private String msgContent;

	private Vector attachedFileList;

	private String mailAccount = null;

	private String mailPass = null;

	private String messageContentMimeType = "text/html; charset=gb2312";

	private String mailbccTo = null;

	private String mailccTo = null;

	/**
	 * 
	 * SendMailService 构造子注解。
	 * 
	 */

	public SendMail() {

		super();

	}

	private void fillMail(Session session, MimeMessage msg) throws IOException,
			MessagingException {

		String fileName = null;

		Multipart mPart = new MimeMultipart();

		if (mailFrom != null) {

			msg.setFrom(new InternetAddress(mailFrom));

			System.out.println("发送人Mail地址:" + mailFrom);

		} else {

			System.out.println("没有指定发送人邮件地址!");

			return;

		}

		if (mailTo != null) {

			InternetAddress[] address = InternetAddress.parse(mailTo);

			msg.setRecipients(Message.RecipientType.TO, address);

			System.out.println("收件人Mail地址:" + mailTo);

		} else {

			System.out.println("没有指定收件人邮件地址!");

			return;

		}

		if (mailccTo != null) {

			InternetAddress[] ccaddress = InternetAddress.parse(mailccTo);

			System.out.println("CCMail地址:" + mailccTo);

			msg.setRecipients(Message.RecipientType.CC, ccaddress);

		}

		if (mailbccTo != null) {

			InternetAddress[] bccaddress = InternetAddress.parse(mailbccTo);

			System.out.println("BCCMail地址:" + mailbccTo);

			msg.setRecipients(Message.RecipientType.BCC, bccaddress);

		}

		msg.setSubject(subject);

		InternetAddress[] replyAddress = { new InternetAddress(mailFrom) };

		msg.setReplyTo(replyAddress);

		// create and fill the first message part

		MimeBodyPart mBodyContent = new MimeBodyPart();

		if (msgContent != null)

			mBodyContent.setContent(msgContent, messageContentMimeType);

		else

			mBodyContent.setContent("", messageContentMimeType);

		mPart.addBodyPart(mBodyContent);

		// attach the file to the message

		if (attachedFileList != null) {

			for (Enumeration fileList = attachedFileList.elements(); fileList
					.hasMoreElements();) {

				fileName = (String) fileList.nextElement();

				MimeBodyPart mBodyPart = new MimeBodyPart();

				// attach the file to the message

				FileDataSource fds = new FileDataSource(messageBasePath
						+ fileName);

				System.out.println("Mail发送的附件为:" + messageBasePath + fileName);

				mBodyPart.setDataHandler(new DataHandler(fds));

				mBodyPart.setFileName(fileName);

				mPart.addBodyPart(mBodyPart);

			}

		}

		msg.setContent(mPart);

		msg.setSentDate(new Date());

	}

	/**
	 * 
	 * 此处插入方法说明。
	 * 
	 */

	public void init()

	{

	}

	/**
	 * 
	 * 发送e_mail,返回类型为int
	 * 
	 * 当返回值为0时,说明邮件发送成功
	 * 
	 * 当返回值为3时,说明邮件发送失败
	 * 
	 */

	public int sendMail() throws IOException, MessagingException {

		int loopCount;

		Properties props = System.getProperties();

		props.put("mail.smtp.host", smtpHost);

		props.put("mail.smtp.auth", "true");

		MailAuthenticator auth = new MailAuthenticator();

		Session session = Session.getInstance(props, auth);

		session.setDebug(debug);

		MimeMessage msg = new MimeMessage(session);

		Transport trans = null;

		try {

			fillMail(session, msg);

			// send the message

			trans = session.getTransport("smtp");

			try {

				trans.connect(smtpHost, MailAuthenticator.HUAWEI_MAIL_USER,
						MailAuthenticator.HUAWEI_MAIL_PASSWORD);
																

			} catch (AuthenticationFailedException e) {

				e.printStackTrace();

				System.out.println("连接邮件服务器错误1:");

				return 3;

			} catch (MessagingException e) {
				e.printStackTrace();
				System.out.println("连接邮件服务器错误2:");

				return 3;

			}

			trans.send(msg);

			trans.close();

		} catch (MessagingException mex) {

			System.out.println("发送邮件失败:");

			mex.printStackTrace();

			Exception ex = null;

			if ((ex = mex.getNextException()) != null) {

				System.out.println(ex.toString());

				ex.printStackTrace();

			}

			return 3;

		} finally {

			try {

				if (trans != null && trans.isConnected())

					trans.close();

			} catch (Exception e) {

				System.out.println(e.toString());

			}

		}

		System.out.println("发送邮件成功!");

		return 0;

	}

	public void setAttachedFileList(java.util.Vector filelist)

	{

		attachedFileList = filelist;

	}

	public void setDebug(boolean debugFlag)

	{

		debug = debugFlag;

	}

	public void setMailAccount(String strAccount) {

		mailAccount = strAccount;

	}

	public void setMailbccTo(String bccto) {

		mailbccTo = bccto;

	}

	public void setMailccTo(String ccto) {

		mailccTo = ccto;

	}

	public void setMailFrom(String from)

	{

		mailFrom = from;

	}

	public void setMailPass(String strMailPass) {

		mailPass = strMailPass;

	}

	public void setMailTo(String to)

	{

		mailTo = to;

	}

	public void setMessageBasePath(String basePath)

	{

		messageBasePath = basePath;

	}

	public void setMessageContentMimeType(String mimeType)

	{

		messageContentMimeType = mimeType;

	}

	public void setMsgContent(String content)

	{

		msgContent = content;

	}

	public void setSMTPHost(String host)

	{

		smtpHost = host;

	}

	public void setSubject(String sub)

	{

		subject = sub;

	}

	public static void main(String[] argv) throws Exception

	{

		for (int i = 0; i < 10; i++) {

			SendMail sm = new SendMail();

//			sm.setSMTPHost("mail.ec.com.cn");
//			sm.setMailFrom("cecfhelp@ec.com.cn");
			//sm.setMailTo("309341935@qq.com");			
			
			
			sm.setSMTPHost("smtp.163.com");
			sm.setMailFrom("lisunchang678@163.com");			
			sm.setMailTo("johnston678@163.com");

//			sm.setSMTPHost("smtp.qq.com");
//			sm.setMailFrom("309341935@qq.com");
//			sm.setMailTo("495794927@qq.com");
			
			sm.setMsgContent("邮件测试程序" + i);

			sm.setSubject("邮件测试程序" + i);

			sm.sendMail();
			
			Thread t = new Thread();
			t.sleep(10000);
			System.out.println("count:" + i);

		}

	}

}
分享到:
评论

相关推荐

    易语言简易邮件收发

    这个源码可能包含了一个简单的邮件客户端程序,能够帮助用户与邮件服务器进行交互,完成邮件的收发任务。 首先,我们要理解邮件收发的基本原理。电子邮件系统通常基于SMTP(Simple Mail Transfer Protocol)协议...

    C#之邮件收发实现程序

    以下是一个简单的TCPListener示例,但请注意,实际邮件接收会涉及到复杂的协议解析: ```csharp using System.Net.Sockets; using System.Text; // 创建TCP监听器 TcpListener listener = new TcpListener(IP...

    收发邮件程序收发邮件程序收发邮件程序收发邮件程序

    收发邮件程序收发邮件程序收发邮收发邮件程序件程序

    编写一个邮件收发的客户端

    实验8 掌握简单的网络通信技术 编写一个邮件收发的客户端程序!

    .net 邮件收发程序

    在.NET开发环境中,创建邮件收发程序是一项常见的任务,它涉及到使用特定的库或API来实现电子邮件的发送和接收功能。本项目名为".net 邮件收发程序",其核心可能使用了OpenPop.NET这个开源库,版本为2.0.2。 ...

    VB6+Jmail简单的邮件收发小程序

    【VB6+Jmail简单的邮件收发小程序】 VB6(Visual Basic 6)是微软公司开发的一款集成开发环境,主要用于创建Windows应用程序。它以其简单易学、编程效率高而受到许多初学者和专业开发者的喜爱。Jmail,则是用于VB6...

    06.邮件收发程序.rar

    邮件收发程序.rar" 指的是一款基于VB(Visual Basic)编程语言开发的邮件收发程序。VB是Microsoft公司推出的一种面向对象的、可视化编程工具,它简单易用,适合初学者进行程序开发。在这个项目中,开发者使用VB创建...

    计算机网络邮件收发 SMTP和POP3实现

    在实现邮件收发的过程中,首先需要一个用户界面,提供发送和接收邮件的选项。用户输入邮箱账号和密码后,程序通过SMTP协议连接到邮件服务器,进行身份验证。然后,使用SMTP协议发送邮件,这个过程涉及构建邮件头部...

    java邮件收发

    Java邮件收发是Java开发中一个实用的功能,它允许程序自动发送和接收电子邮件。在Java中,这主要通过使用JavaMail API来实现。JavaMail API是一个开源库,它提供了丰富的接口和类,使得开发者能够方便地处理邮件服务...

    简单邮件收发器源码

    这是一个关于邮件收发器的源码项目,主要涵盖了如何在C#环境中开发一个简单的邮件发送和接收应用程序。这个项目的源代码包含多个关键组件,让我们逐一分析。 首先,`MailSendAndReceive`是项目的根目录,它包含了...

    VC做的邮件收发程序

    邮件收发的程序,内容和代码都很详细,值得参考

    cgi邮件收发程序汉化版 

    CGI邮件收发程序是一种基于Common Gateway Interface (CGI)技术的应用,用于通过Web服务器接收和发送电子邮件。这个汉化版特别适合那些希望通过网页界面管理自己邮件的用户,无需依赖特定的邮件客户端软件。CGI是Web...

    一个简单的邮件发送程序

    在本案例中,我们讨论的是一个用C++语言编写的简单邮件发送程序。C++是一种强大且灵活的编程语言,适合开发各种类型的应用,包括系统软件、游戏引擎以及像邮件发送这样的实用工具。 【SMTP协议】 邮件发送程序的...

    java写的收发邮件程序

    首先,我们需要了解Java中的JavaMail API,这是一个开源库,用于处理邮件相关的任务。在Java程序中,我们主要使用`javax.mail`和`javax.mail.internet`这两个包下的类来完成邮件的收发工作。 **1. 邮件协议** 在...

    简单的邮件收发器

    本项目“简单的邮件收发器”是利用C#实现的一个基础的邮件客户端,它具备邮件的发送、接收以及处理附件等核心功能。下面我们将深入探讨这个项目涉及到的关键知识点。 1. **SMTP(Simple Mail Transfer Protocol)**...

    内部简易邮件收发功能java实现

    标题“内部简易邮件收发功能java实现”表明我们要探讨的是如何使用Java编程语言来构建一个简单的电子邮件系统。这个系统可能包含发送和接收邮件的基本功能,适用于小型项目或内部通信需求。 描述中的链接指向了一个...

    电子邮件收发程序(c++版)

    电子邮件收发程序是计算机软件系统中的一个重要组成部分,特别是在企业级通信和日常个人通讯中发挥着不可或缺的作用。在C++环境中,开发这样的程序涉及到对SMTP(简单邮件传输协议)和POP3(邮局协议版本3)的理解与...

    vb收发邮件程序vb收发邮件程序

    在VB(Visual Basic)编程环境中,开发一个收发邮件程序是一项常见的任务,尤其适用于自动化办公或数据通信场景。VB提供了一种简单的方式来实现这个功能,主要通过使用System.Net.Mail命名空间中的类。以下是对VB...

    C#邮件收发系统源程序

    本项目“C#邮件收发系统源程序”是一个针对初学者的实践教程,旨在帮助他们理解如何利用C#语言来实现邮件的发送和接收功能。这个系统通过调用mail.dll中的封装函数,实现了SMTP、POP3和IMAP协议,这些都是电子邮件...

Global site tag (gtag.js) - Google Analytics