基于JavaMail的邮件发送程序!

跟前两天基于SMTP协议的效果一样的,不过采用JavaMail确实方便多了,也简单多了。

运行此程序还需两个Java包:mail.jar和activation.jar,这两个包很容易下到的,在此就不多说了

本程序用到的JavaMail API的核心类有:会话、消息、地址、验证程序、传输类

其功能分别如下:

Session类
Session类定义了一个基本的邮件会话。通过该会话可让别的工作顺利执行。Session对象利用java.util.Properties对象获取诸如邮件服务器、用户名、密码等信息,以及其他可在整个应用程序中共享的信息。

Message类
创建要发送的消息。

Address类
一旦创建了会话和消息,并为消息填充了内容,就需要用Address类为您的信件标上地址了。

Authenticator类
与java.net类一样,JavaMail API可以利用Authenticator(验证程序)类通过用户名和密码来访问受保护的资源。

Transport类
发送消息的最后一步操作是使用Transport类。该类使用特定于协议(通常是SMTP)的语言来发送消息。

JavaMail.java

-------------------------------------------------------

package mail;

import java.util.*;

import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.*;
import javax.mail.*;

public class JavaMail {
 
 String server="smtp.126.com";//smtp服务器
 String to="wasingmon@eyou.com";//收件人地址
 String from="wasingmon@126.com";//发件人地址
 String user="wasingmon";// 登陆服务器用户名
 String password="";//密码
 
 String subject="2222222";
 String content="1111111";
 
 boolean auth=true;
 boolean debug=true;
  public static void main(String[] args) {
   JavaMail sendMessage=new JavaMail();
  Properties props=new Properties();
  props.put("mail.smtp.host",sendMessage.server);
  props.put("mail.smtp.auth",String.valueOf(sendMessage.auth));//需要身份验证
  props.put("mail.dubug",String.valueOf(sendMessage.debug));//显示调试信息,方便调试
  PopupAuthenticator auth=new PopupAuthenticator(sendMessage.user, sendMessage.password);
  try{
   Session session=Session.getInstance(props,auth);// 创建会话
   session.setDebug(true);
   MimeMessage message=new MimeMessage(session); //创建消息
   Address addressTo=new InternetAddress(sendMessage.to,"wxm1");//创建地址对象
   Address addressFrom=new InternetAddress(sendMessage.from,"wxm2");
   message.setContent(sendMessage.content,"text/plain");//设置消息的各个部分内容
   message.setSubject(sendMessage.subject);
   message.setFrom(addressFrom);
   message.addRecipient(Message.RecipientType.TO,addressTo);
   message.saveChanges();
   Transport transport=session.getTransport("smtp");//传输对象
   transport.connect(sendMessage.server,25,sendMessage.user,sendMessage.password);
   Transport.send(message);
   transport.close();
   System.out.println("Succ!");
   
  }catch(Exception e){
   e.printStackTrace();
   System.out.println("发送失败!");
  }
 }
}

class PopupAuthenticator extends Authenticator{ 
 private String username,password;
 
 public PopupAuthenticator(String username,String password){
  this.password=password;
  this.username=username;
 }
 protected PasswordAuthentication getPasswordAuthentication() {
  return new PasswordAuthentication(username,password);
 }
 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值