使用JavaMail发送邮件

代码如下:

package demo;

import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
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;

import sun.misc.BASE64Encoder;

public class MailSender ...{

  public static void main(String[] args) ...{

    MailSender sender = new MailSender();
    sender.setHost("smtp.sina.com.cn");
    sender.setFromAddr("");
    sender.setToAddr("");
    sender.setUsername("wwwwwwww");
    sender.setPassword("ssssssss");
    sender.setTitle("关于提高效率的几点想法");
    sender.setAttachPath("C:singleUser.sql");
    sender.setAttachName("singleUser.sql");

    try ...{
      sender.sendMail();
    } catch (Exception e) ...{
      e.printStackTrace();
    }
  }

  public void sendMail() throws Exception...{

    Properties props = new Properties();
    props.put("mail.smtp.host", getHost());
    props.put("mail.smtp.auth", "true");
    Session session = Session.getDefaultInstance(props);
    session.setDebug(true);
    MimeMessage message = new MimeMessage(session);
    message.setFrom(new InternetAddress(getFromAddr()));
    message.addRecipient(Message.RecipientType.TO,new InternetAddress(getToAddr()));
    message.setSubject(getTitle());
    Multipart multipart = new MimeMultipart();
    BodyPart contentPart = new MimeBodyPart();
    contentPart.setText("邮件的具体内容在此");
    multipart. addBodyPart(contentPart);
    if(getAttachPath() != null && getAttachName() != null)...{
      BodyPart attachmentPart= new MimeBodyPart();
      DataSource source = new FileDataSource(getAttachPath ());
      attachmentPart.setDataHandler(new DataHandler(source));
      BASE64Encoder enc = new BASE64Encoder();
      attachmentPart.setFileName("=?GBK?B? "+enc.encode(getAttachName().getBytes())+"?=");
      multipart.addBodyPart(attachmentPart);
    }
    message.setContent(multipart);
    message.saveChanges();
    Transport transport = session.getTransport ("smtp");
    transport.connect(host, getUsername(), getPassword());
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
  }

  private String host = null;
  private String fromAddr = null;
  private String toAddr = null;
  private String username = null;
  private String password = null;
  private String title = null;
  private String attachPath = null;
  private String attachName = null;

  public String getHost() ...{
    return host;
  }

  public void setHost(String host) ...{
    this.host = host;
  }

  public String getFromAddr() ...{
    return fromAddr;
  }

  public void setFromAddr(String fromAddr) ...{
    this.fromAddr = fromAddr;
  }

  public String getToAddr() ...{
    return toAddr;
  }

  public void setToAddr(String toAddr) ...{
    this.toAddr = toAddr;
  }

  public String getUsername() ...{
    return username;
  }

  public void setUsername(String username) ...{
    this.username = username;
  }

  public String getPassword() ...{
    return password;
  }

  public void setPassword(String password) ...{
    this.password = password;
  }

  public String getTitle() ...{
    return title;
  }

  public void setTitle(String title) ...{
    this.title = title;
  }

  public String getAttachPath() ...{
    return attachPath;
  }

  public void setAttachPath(String attachPath) ...{
    this.attachPath = attachPath;
  }

  public String getAttachName() ...{
    return attachName;
  }

  public void setAttachName(String attachName) ...{
    this.attachName = attachName;
  }
}

时间: 2024-10-31 01:40:11

使用JavaMail发送邮件的相关文章

javamail发送邮件

发送邮件 /*在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等.问题零散,而历史的回复早已经淹没在问题的海洋之中. 本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获.看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助. 此篇仅介绍用javamail实现发送邮件功能,其中涉及smtp认证,邮件附件发送,及HTML内容邮件等.其它有关多邮箱的实现,接

使用JavaMail发送邮件的Java类

使用JavaMail发送邮件需要用到mail.jar和activtion.jar两个包. 该类实现了较完整的邮件发送功能,包括以HTML格式发送,添加附件和抄送人.下面是具体的代码: Mail.java: package cn.cgw.util.mail; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.ma

javamail发送邮件的简单实例

今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题. 为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可. 第一个类:MailSenderInfo.java package com.util.mail; /** *//** * 发送邮件需要使用的基本信息 *author by wangfun http://www.5a520.cn 小说520 */ import java.util.Prop

[JAVA100例]047、使用JavaMail发送邮件

import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; /** * <p>Title: 使用javamail发送邮件</p> * <p>Description: 演示如何使用javamail包发送电子邮件.这个实例可发送多附件</p> * <p>Copyright: Cop

javamail发送邮件问题 莫名其妙的 在线等

问题描述 javamail发送邮件问题 莫名其妙的 在线等 代码: public class SendEmail extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 收件人的电子邮件 ID // String to = "1032960260@qq.com"; /

javamail发送邮件的简单实例(转)

  javamail发送邮件的简单实例 今天学习了一下JavaMail,javamail发送邮件确实是一个比较麻烦的问题.为了以后使用方便,自己写了段代码,打成jar包,以方便以后使用.呵呵 以下三段代码是我的全部代码,朋友们如果想用,直接复制即可. 第一个类:MailSenderInfo.java  package com.util.mail;    /**    * 发送邮件需要使用的基本信息  *author by wangfun   */     import java.util.Pro

android调用javamail发送邮件以及android调用intent发送邮件机制?

问题描述 android调用javamail发送邮件以及android调用intent发送邮件机制? android引用javamail包发送邮件时,javamail是调用android的intent进行通信吗?为什么android调用内部的intent发送邮件不需要登陆邮箱,而是可以直接指定目标邮箱直接发送数据.javamail在android发送邮件调用的什么机制呢?我被搞得好乱,求解 解决方案 Android 调用Gmail发送邮件 解决方案二: 不需要登陆邮箱,对方接收到邮件显示的发送方

javamail发送邮件问题

问题描述 javamail发送邮件问题 java发送邮件,在网上能到找到很多代码,但是都是最后利用mian方法来测试,请问可以直接调用么? 我利用main方法测试成功了,可是直接在程序中调用的话,另外一个类里面调用send()方法,就报javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp错误了.mail.java包等都导入成功了,请教这是什么问题啊 解决方案 检查下你的smtp服务器是否正

javamail发送邮件可能的异常种类

问题描述 javamail发送邮件可能的异常种类 刚进公司的小白,要做一个邮件反馈的功能, 我用javamail写的,测试都能通过,就是想问下有没有办法能获取到反馈,比如说用户是成功接收邮件还是接收失败. 而且javamail 的包 好像与javaee5有冲突,要把环境换成ee_6,可是我本地换了之后项目发布测试的时候会不会有问题. 因为服务器的项目本身是5的环境 解决方案 有可能被当做垃圾邮件放入垃圾箱 这个不是异常,没办法判断 只能判断你和smtp服务器的通讯是否成功,这个try catch

javamail发送邮件,超链接无法访问

问题描述 javamail发送邮件,超链接无法访问 我用javamail发送html邮件给QQ邮箱,在html中我加入了标签和连接.但是每次发送到那边,链接都无法点击是怎么回事? 解决方案 之前测试mail这个功能的时候,简单的作出了发送email的功能,但是仅仅发给一个人可以,发送多个联系人就会出错,发送失败!请与邮件管理员联系. javax.mail.internet.AddressException: Illegal whitespace in address in string ``sh