mail

博客展示了Java中邮件发送相关类的代码实现。包含MailAuthenticator类用于邮件认证,StringDataSource类处理字符串数据源,ReMail类实现邮件发送功能,涉及用户名、密码、邮件主题、内容等设置,以及邮件会话和消息的创建与发送。

package yaoyao.classes;

import javax.mail.*;
public class MailAuthenticator extends Authenticator{
  private String  name=null;//用户名
  private String password=null;//用户密码

  public MailAuthenticator(){}
  public MailAuthenticator(String name, String password){
    this.name=name;
    this.password=password;
  }
  public void setName(String name){
    this.name=name;
  }
  public void setPassword(String password){
    this.password=password;
  }
  public PasswordAuthentication getPasswordAuthentication(){
    return new PasswordAuthentication(name, password);
  }
}

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

package yaoyao.classes;

import java.io.*;
import javax.activation.*;

public class StringDataSource implements javax.activation.DataSource{
  private String data;
  private String type;

  public StringDataSource(String data, String type){
    this.data=data;
    this.type=type;
  }

  public InputStream getInputStream()throws IOException {
    if(data==null){
      throw new IOException("Data is null");
    }
    return new ByteArrayInputStream(data.getBytes());
    //return new StringBufferInputStream(new String(data.getBytes("iso-8859-1"), "GB2312"));
  }
  public OutputStream getOutputStream() throws IOException{
    throw new IOException("Data is readonly");
  }
  public String getContentType(){
    return type;
  }
  public String getName(){
    return "StringDataSource";
  }
}

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

package yaoyao.classes;

import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

import yaoyao.classes.*;

public class ReMail{
  String smtpHost="smtp.sohu.com";
  String mailFrom="gelikeji@sohu.com";
  String mailUser="gelikeji";
  String mailPassword="44348214";
 
  String mailTo=null;
  String mailSubject=null;
  String mailContent=null;
  public void setMailTo(String mailTo){
    this.mailTo=mailTo;
  }
  public void setMailSubject(String mailSubject){
    this.mailSubject=mailSubject;
  }
  public void setMailContent(String mailContent){
    this.mailContent=mailContent;
  }

  public String getMailTo(){
    return mailTo;
  }
  public String getMailSubject(){
    return mailSubject;
  }
  public String getMailContent(){
    return mailContent;
  }

  public void send(){
    try{
      Properties props = System.getProperties();
      props.put("mail.smtp.host", smtpHost);
      props.put("mail.smtp.auth", "true");
      Authenticator auth = new MailAuthenticator(mailUser, mailPassword);
      Session mailSession = Session.getDefaultInstance(props, auth);
      Message msg = new MimeMessage(mailSession);
      msg.setFrom(new InternetAddress(mailFrom));
      msg.setRecipients(Message.RecipientType.TO,
                        InternetAddress.parse(getMailTo()));
      msg.setSubject(getMailSubject());
      msg.setDataHandler(new DataHandler(
          new StringDataSource(getMailContent(), "text/html")));
      Transport.send(msg);
    }catch(Exception e){}
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值