一个简单的邮件收发程序


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);

}

}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值