`
mushme
  • 浏览: 793136 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

发送邮件的util

 
阅读更多
以前整理的一个util,发出来和大家共享

package com.dbcapital.util;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.dbcapital.constant.MailConstant;


/**
 * . *
 * 
 * @author frady
 */
public class Mail {
	String host = "";
	String user = "";
	String password = "";
	public Mail(){
		this.host=MailConstant.SMTP_HOST;
		this.user=MailConstant.SERVICE_ADDRESS;
		this.password=MailConstant.SERVICE_PASSWORD;
	}
	public Mail(String host,String user,String password){
		this.host = host;
		this.user = user;
		this.password = password;
	}
	
	public void send(String to, String subject, String content) {
		Properties props = new Properties();
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", "true");
		try {
			Session mailSession = null;
			try{
				mailSession=Session.getDefaultInstance(props);
			}catch(java.lang.SecurityException e){
				mailSession=Session.getInstance(props);
			}
			Message message = new MimeMessage(mailSession);
			message.setFrom(new InternetAddress(user));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(
					to));
			
			sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); 
			message.setSubject("=?GBK?B?"+enc.encode(subject.getBytes())+"?=");
			message.setContent(content,"text/html;charset=GBK");
			
			message.saveChanges();
			Transport transport = mailSession.getTransport("smtp");
			transport.connect(host, user, password);
			transport.sendMessage(message, message.getAllRecipients());
			transport.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}
	
	/*
	 * 由于mail协议的设计问题,可以用以下函数发送匿名信
	 */
	public void send(String from, String to, String subject, String content) {
		Properties props = new Properties();
		props.put("mail.smtp.host", host);
		props.put("mail.smtp.auth", "true");
		try {
			Session mailSession = null;
			try{
				mailSession=Session.getDefaultInstance(props);
			}catch(java.lang.SecurityException e){
				mailSession=Session.getInstance(props);
			}
			Message message = new MimeMessage(mailSession);
			message.setFrom(new InternetAddress(from));
			message.addRecipient(Message.RecipientType.TO, new InternetAddress(
					to));
			
			sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); 
			message.setSubject("=?GBK?B?"+enc.encode(subject.getBytes())+"?=");
			message.setContent(content,"text/html;charset=GBK");
			
			message.saveChanges();
			Transport transport = mailSession.getTransport("smtp");
			transport.connect(host, user, password);
			transport.sendMessage(message, message.getAllRecipients());
			transport.close();
		} catch (Exception e) {
			System.out.println(e);
		}
	}


}


有可能需要附件的lib,实际上肯定是需要的。
分享到:
评论

相关推荐

    Java邮件util

    Java邮件Util是一个用于在Java应用程序中发送电子邮件的实用工具库。它封装了JavaMail API,使得开发者能够方便地实现邮件的发送、接收以及管理。JavaMail API是Java平台上的标准邮件处理接口,提供了多种邮件协议的...

    多线程发邮件

    本示例“多线程发邮件”就是利用了这一特性,通过并发执行多个邮件发送任务,来加快邮件的发送速度。下面我们将深入探讨相关知识点。 首先,多线程是指在一个进程中同时执行多个线程,这些线程可以共享同一块内存...

    java使用定时器,定时发送邮件

    2. 创建`MimeMessage`对象,设置发件人、收件人、主题和邮件内容。 3. 如果需要,可以添加附件。 4. 使用`Transport.send()`方法发送邮件。 然后,你可以用`TimerTask`来包装`EmailSenderTask`,并将其提交给`Timer...

    写java程序实现发邮件功能

    本篇文章将深入探讨如何使用Java编写程序来实现邮件的发送,包括发送纯文本邮件、带有附件的邮件、包含图片的邮件以及在邮件中显示图片。 首先,我们得知道JavaMail API是实现邮件发送功能的关键库。它提供了一系列...

    java发送邮件

    在定时发送邮件的情况下,你可以结合Java的定时任务框架,如`java.util.Timer`或`java.util.concurrent.ScheduledExecutorService`,来定期执行邮件发送任务。例如,你可以创建一个定时器任务,每隔一段时间检查是否...

    java 发邮件带excel附件,以流的形式发送附件,不生成excel文件

    接下来,我们需要创建一个`MimeMessage`对象,并设置必要的邮件属性,如发件人、收件人、主题和正文。然后,我们将通过`MimeBodyPart`和`MimeMultipart`类来处理附件。 关键在于如何以流的形式创建Excel附件。我们...

    基于javamail的发送邮件示例文档

    1. **MailSenderInfo类**:这个类封装了发送邮件所需的所有信息,如邮件服务器的主机名(mailServerHost)和端口号(mailServerPort),发件人(fromAddress)、收件人(toAddress)的地址,以及是否需要验证...

    java定时发送邮件

    Java定时发送邮件是一种常见的自动化任务,常常用于通知、提醒或者定期报告等场景。在这个实例中,我们将探讨如何使用Java编程语言结合电子邮件服务实现一个定时发送邮件的功能。这涉及到的主要知识点包括JavaMail ...

    java发送邮件Demo

    这里需要指定发件人、收件人、主题和邮件内容: ```java String to = "recipient@example.com"; String from = "your-email@example.com"; String subject = "Java发送的测试邮件"; String body = "这是一封由Java...

    Java实现发送邮件.pdf

    ### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...

    JAVA发送邮件实现

    在Java编程语言中,发送邮件是一项常见的任务,尤其在开发Web应用、自动化通知或系统集成时。本教程将深入讲解如何使用Java实现邮件发送功能,包括所需的库、基本概念以及实际代码示例。 首先,JavaMail API是Java...

    java发送邮件的小例子

    在Java编程语言中,发送邮件是一项常见的任务,特别是在开发Web应用或者需要验证用户身份时,如发送验证码。本文将详细讲解如何使用Java实现这个功能,主要基于`javax.mail`库来创建一个简单的邮件发送程序。 首先...

    如何用javamail定时发送邮件.doc

    为了实现定时发送邮件,我们可以结合Java的定时器(java.util.Timer)或更高级的调度库如Quartz。 在你的需求中,你需要在特定时间(比如3天后的12:00或每天12:00)发送邮件,并且邮件收件人可能从一个jsp页面动态...

    java基于socket 利用1邮件服务器发送邮件

    `java.util.Properties`对象用来存储配置信息,包括邮件服务器的属性。例如,我们可以设置`mail.smtp.host`为SMTP服务器地址,`mail.smtp.port`为端口号,以及`mail.smtp.auth`为true,表示需要进行身份验证。 3. ...

    JSP发送邮件功能

    接着,我们创建了一个`MimeMessage`对象,设置发件人、收件人、主题和邮件正文。最后,通过`Transport.send()`方法将邮件发送出去。 这个`MailDemo`项目可能包含了一个简单的JSP页面,用于展示如何实现上述代码。在...

    JAVA实现邮件发送.txt

    这段代码详细展示了发送纯文本邮件的过程,包括创建会话、设置发件人和收件人、设置邮件主题、内容等关键步骤。 ##### 4. 发送HTML格式邮件 ```java public static boolean sendHtmlMail(MailSenderInfo mailInfo)...

    java发送邮件源码

    3. **构建Message**:创建`Message`对象,设置发件人、收件人、主题和邮件内容。使用`MimeMessage`类创建复杂格式的邮件,包括HTML文本、附件等: ```java MimeMessage message = new MimeMessage(session); ...

    SSH开发的发送邮件系统 Email发送系统

    如果出现JavaMail 发送邮件报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream错误ava.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream 是因为myeclipse中有自带的Javamail...

Global site tag (gtag.js) - Google Analytics