日期:2014-05-19  浏览次数:20643 次

发送email问题
我们老板想到做一个  只能通过一个邮件地址发送邮件的功能,请问这个功能要怎么实现,求思路!!

------解决方案--------------------
Java code

//用mail.jar和activation.jar发送邮件
//需要下载一个Mail.jar包和activation.jar

MailSenderInfo.java

package com.util.mail;

import java.util.Properties;
public class MailSenderInfo {
// 发送邮件的服务器的IP和端口
 private String mailServerHost;
 private String mailServerPort = "25";
 // 邮件发送者的地址
 private String fromAddress;
 // 邮件接收者的地址
 private String toAddress;
 // 登陆邮件发送服务器的用户名和密码
 private String userName;
 private String password;
 // 是否需要身份验证
 private boolean validate = false;
 // 邮件主题
 private String subject;
 // 邮件的文本内容
 private String content;
 // 邮件附件的文件名
 private String[] attachFileNames;
 
 public Properties getProperties(){
    Properties p = new Properties();
    p.put("mail.smtp.host", this.mailServerHost);
    p.put("mail.smtp.port", this.mailServerPort);
    p.put("mail.smtp.auth", validate ? "true" : "false");
    return p;
 }
 public String getMailServerHost() {
  return mailServerHost;
 }
 public void setMailServerHost(String mailServerHost) {
  this.mailServerHost = mailServerHost;
 } 
 public String getMailServerPort() {
  return mailServerPort;
 } 
 public void setMailServerPort(String mailServerPort) {
  this.mailServerPort = mailServerPort;
 } 
 public boolean isValidate() {
  return validate;
 } 
 public void setValidate(boolean validate) {
  this.validate = validate;
 } 
 public String[] getAttachFileNames() {
  return attachFileNames;
 } 
 public void setAttachFileNames(String[] fileNames) {
  this.attachFileNames = fileNames;
 } 
 public String getFromAddress() {
  return fromAddress;
 }
 public void setFromAddress(String fromAddress) {
  this.fromAddress = fromAddress;
 } 
 public String getPassword() {
  return password;
 } 
 public void setPassword(String password) {
  this.password = password;
 } 
 public String getToAddress() {
  return toAddress;
 }
 public void setToAddress(String toAddress) {
  this.toAddress = toAddress;
 }
 public String getUserName() {
  return userName;
 } 
 public void setUserName(String userName) {
  this.userName = userName;
 } 
 public String getSubject() {
  return subject;
 } 
 public void setSubject(String subject) {
  this.subject = subject;
 } 
 public String getContent() {
  return content;
 } 
 public void setContent(String textContent) {
  this.content = textContent;
 }
}

 


MyAuthenticator.java

package com.util.mail;
 
import javax.mail.*;
 
public class MyAuthenticator extends Authenticator{
  String userName=null;
  String password=null;
   
  public MyAuthenticator(){
  }
  public MyAuthenticator(String username, String password) { 
    this.userName = username; 
    this.password = password; 
  } 
  protected PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication(userName, password);
  }
}

 

 

SimpleMailSender.java

 

package com.util.mail;

import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.BodyPart; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Multipart; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart;


public class SimpleMailSender{

public boolean sendTextMail(MailSenderInfo mailInfo) {
// 判断是否需要身份认证
 MyAuthenticator authenticator = null;
 Properties pro = mailInfo.getProperties();
 if (mailInfo.isValidate()) {
// 如果需要身份认证,则创建一个密码验证器
 authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
 }
 // 根据邮件会话属性和密码验证器构造一个发送邮件的session
 Session sendMailSession = Session.getDefaultInstance(pro,authenticator); 
 try { 
 // 根据session创建一