发送电子邮件 java mail

请看下面文章。

spring3.0发送电子邮件(velocity模板,带附件,群发,解决乱码)最终版:http://blog.sina.com.cn/s/blog_616e189f0100m7qq.html

Spring Mail  :

http://shqkm.blog.163.com/blog/static/7948041720110275124724/

 

 

项目中代码:

apache mail:

package com.dfyl.util;

/**
 * Created by IntelliJ IDEA.
 * User: timchao
 * Date: 11/9/27
 * Time: 下午2:37
 * To change this template use File | Settings | File Templates.
 */

import org.apache.commons.mail.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.io.IOException;
import java.util.Properties;

public class SendMail {
    public String smtpHostName = "smtp.qiye.163.com";//"smtp.gmail.com";
    public String authserName = "[DMS]iMove server";
    public String authuser = "iMove_service@dfyl-luxgen.com";
    public String authpwd = "iMpwd2011";
    public int smtpPort = 25;
    public String sslsmtpPort = "465";
    public String Charset = "UTF-8";
    public String subject = "iTest";
    public String message = "iTest!!";
    public String sendToName = "Dear Engineer";
    public String sendTo = "iMove_service@dfyl-luxgen.com";
    public boolean debug = false;
    public boolean ssl = false;

    /**
     * Send Mail
     */
    public void Send() {
        final Log log = LogFactory.getLog(SendMail.class);
        Properties property = new Properties();
        try {
            property.load(SendMail.class.getResourceAsStream("/mail.properties"));
            smtpHostName = property.getProperty("smtpHostName").trim();
            authserName = property.getProperty("authserName").trim();
            authuser = property.getProperty("authuser").trim();
            authpwd = property.getProperty("authpwd").trim();
            smtpPort = Integer.parseInt(property.getProperty("smtpPort").trim());
            sslsmtpPort = property.getProperty("sslsmtpPort").trim();
            Charset = property.getProperty("Charset").trim();
            sendTo = property.getProperty("sendTo").trim();
            debug = Boolean.parseBoolean(property.getProperty("debug").trim());
            ssl = Boolean.parseBoolean(property.getProperty("ssl").trim());

        } catch (IOException e) {
            //e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }

        Email email = new HtmlEmail();
        email.setHostName(smtpHostName);
        email.setAuthenticator(new DefaultAuthenticator(authuser, authpwd));
        email.setDebug(debug);
        if (ssl) {
            email.setSSL(ssl);
            email.setSslSmtpPort(sslsmtpPort);
        } else {
            email.setSmtpPort(smtpPort);
        }
        email.setCharset(Charset);
        email.setSubject(subject);

        try {
            email.setFrom(authuser, authserName);
            email.setMsg(message);
            email.addTo(sendTo, sendToName);
            email.send();
        } catch (EmailException ee) {
            //ee.printStackTrace();
        }

    }

}


 

spring mail:

package com.dfyl.util;

import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import freemarker.template.SimpleHash;
import freemarker.template.TemplateException;

public class SendMail {
	/**
	 * @author xblang
	 * 发送普通文本的邮件
	 * @param sentTO
	 * @param from
	 * @param subject
	 * @param content
	 * @param username
	 * @param password
	 */
	public static void sendTextMail(String[] sentTO,String from,String subject,String content,String username,String password) {
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
	    // 设定mail server  
	    senderImpl.setHost( "smtp.qiye.163.com" );
	    // 建立邮件消息  
	    SimpleMailMessage mailMessage = new  SimpleMailMessage(); 
	     // 设置收件人,寄件人 用数组发送多个邮件
	     // String[] array = new String[]    {"sun111@163.com","sun222@sohu.com"};    
	     // mailMessage.setTo(array);  
	    mailMessage.setTo(sentTO); 
	    mailMessage.setFrom(from); 
	    mailMessage.setSubject(subject); 
	    mailMessage.setText(content); 
	    senderImpl.setUsername(username);  //  根据自己的情况,设置username 
	    senderImpl.setPassword(password);  //  根据自己的情况, 设置password 
		Properties prop = new Properties();
		prop.setProperty("mail.smtp.auth","true");  //  将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确 
//		prop.put("mail.smtp.timeout","25000"); 
		senderImpl.setJavaMailProperties(prop);  
	     // 发送邮件  
	    senderImpl.send(mailMessage); 
	    System.out.println( " 邮件发送成功.. " ); 
	}
	
	/**
	 * @author xblang
	 * 发送Html文本的邮件
	 * @param sentTO 字符串数组,为收邮件的邮箱地址
	 * @param from 发件人地址
	 * @param subject 邮件主题
	 * @param content 邮件内容
	 * @param username 发件人用户名
	 * @param password 发件人密码
	 * @throws MessagingException
	 */
	public static void sendHtmlMail(String templet,String[] sentTO,String from,String subject,List errorList,String username,String password) throws MessagingException{ 
		FreemarkGenerator fm =  new FreemarkGenerator();
		SimpleHash aMap = new SimpleHash();
		aMap.put("errorList", errorList);
		aMap.put("error_size", errorList.size());
		String content = "";
		try {
			System.out.println(fm.createString(templet, aMap));
			content = fm.createString(templet, aMap);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
	    //设定mail server 
	    try {
			senderImpl.setHost(PropertyUtil.getMailValue("smtpHostName"));
		} catch (BaseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    //建立邮件消息,发送简单邮件和html邮件的区别 
	    MimeMessage mailMessage = senderImpl.createMimeMessage(); 
	    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); 
	    //设置收件人,寄件人 
	    messageHelper.setTo(sentTO); 
	    messageHelper.setFrom(from); 
	    messageHelper.setSubject(subject); 
	    //true 表示启动HTML格式的邮件 
	    messageHelper.setText(content,true); 
	    senderImpl.setUsername(username) ; // 根据自己的情况,设置username
	    senderImpl.setPassword(password) ; // 根据自己的情况, 设置password
	    Properties prop = new Properties() ;
	    prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
//	    prop.put("mail.smtp.timeout", "25000") ; 
	    senderImpl.setJavaMailProperties(prop); 
	    //发送邮件 
	    senderImpl.send(mailMessage); 
	    System.out.println("邮件发送成功.."); 
	}
	
	
	/**
	 * @author xblang
	 * 发送Html文本的邮件
	 * @param sentTO 字符串数组,为收邮件的邮箱地址
	 * @param from 发件人地址
	 * @param subject 邮件主题
	 * @param content 邮件内容
	 * @param username 发件人用户名
	 * @param password 发件人密码
	 * @throws MessagingException
	 */
	public static void sendHtmlMail(String templet , String subject, SimpleHash aMap,String username,String password) throws MessagingException{ 
		FreemarkGenerator fm =  new FreemarkGenerator();
		String sentTo_DFYL = null;
		try {
			 sentTo_DFYL = PropertyUtil.getMailValue("sendTo");
		} catch (BaseException e1) {
			e1.printStackTrace();
		}
		String[] sentTO = {sentTo_DFYL};
		String content = "";
		try {
			content = fm.createString(templet, aMap);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		}
		JavaMailSenderImpl senderImpl = new JavaMailSenderImpl(); 
	    //设定mail server 
	    try {
			senderImpl.setHost(PropertyUtil.getMailValue("smtpHostName"));
		} catch (BaseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	    //建立邮件消息,发送简单邮件和html邮件的区别 
	    MimeMessage mailMessage = senderImpl.createMimeMessage(); 
	    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true,"UTF-8"); 
	    //设置收件人,寄件人 
	    messageHelper.setTo(sentTO); 
	    try {
			messageHelper.setFrom(PropertyUtil.getMailValue("authuser"));
		} catch (BaseException e) {
			e.printStackTrace();
		} 
	    messageHelper.setSubject(subject); 
	    //true 表示启动HTML格式的邮件 
	    messageHelper.setText(content,true); 
	    senderImpl.setUsername(username) ; // 根据自己的情况,设置username
	    senderImpl.setPassword(password) ; // 根据自己的情况, 设置password
	    Properties prop = new Properties() ;
	    prop.put("mail.smtp.auth", "true") ; // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确
//	    prop.put("mail.smtp.timeout", "25000") ; 
	    senderImpl.setJavaMailProperties(prop); 
	    //发送邮件 
	    senderImpl.send(mailMessage); 
	    System.out.println("邮件发送成功.."); 
	}
}


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaMail 是一个用于发送和接收电子邮件Java API。它可以用于实现移动邮件,即通过手机或其他移动设备发送和接收电子邮件。 要使用 JavaMail 实现移动邮件功能,首先需要配置相应的邮件服务器信息。可以使用 SMTP 协议来发送邮件,IMAP 或 POP3 协议来接收邮件。需要提供邮件服务器的地址、端口、用户名和密码等信息,以便 JavaMail 可以与邮件服务器进行通信。 发送邮件时,可以使用 MimeMessage 对象来创建一封邮件。需要设置邮件的发送者、接收者、主题、正文内容等信息。还可以添加附件、设置邮件的优先级等。 接收邮件时,可以通过协议(IMAP 或 POP3)连接到邮件服务器,并使用相应的协议进行认证和获取邮件。可以使用 Folder 对象代表邮件文件夹,通过该对象可以获取邮件的数量、邮件的标志和状态等信息。可以使用 Message 对象来表示每封邮件,可以获取邮件的发送者、接收者、主题、日期、内容等信息。 除了发送和接收邮件,JavaMail 还提供了一些其他功能。例如,可以使用 SMTP 协议发送 HTML 邮件,可以使用附件来发送文件,可以使用 SSL/TLS 连接来保护邮件的安全性。 总之,JavaMail 是一个强大的工具,可以用于实现移动邮件。它提供了丰富的功能和灵活的配置选项,使开发者可以轻松地实现邮件的发送和接收功能,并以此来实现移动邮件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值