⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 emailserviceimpl.java

📁 这是一款最新的野蔷薇论坛源码,有需要的朋友可以尽情下载
💻 JAVA
字号:
/* 
 * Created on 2007-2-12
 * Last modified on 2007-05-05
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.service.util.impl;

import java.security.Security;
import java.util.Date;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import org.apache.log4j.Logger;

import com.yeqiangwei.club.dao.model.Email;
import com.yeqiangwei.club.service.ServiceLocator;
import com.yeqiangwei.club.service.ServiceWrapper;
import com.yeqiangwei.club.service.model.BasicInfoModel;
import com.yeqiangwei.club.service.util.BasicInfoService;
import com.yeqiangwei.club.service.util.EmailService;
import com.yeqiangwei.club.util.MessageUtils;
import com.yeqiangwei.util.Validator;

public class EmailServiceImpl extends MessageUtils implements EmailService{
	
	private static final Logger logger = Logger.getLogger(EmailServiceImpl.class);
	
	private static BasicInfoService basicService = (BasicInfoService) ServiceWrapper.getSingletonInstance(ServiceLocator.BASICINFO);

	public boolean sendEmail(Email item) {
		boolean bea = false;
		BasicInfoModel basic = basicService.findOnly();
		item.setSmtpPort(basic.getSmtpPort());
		item.setSmtpServer(basic.getSmtpServer());
		item.setSmtpIsNeedPassword(basic.getSmtpIsNeedPassword());
		item.setSmtpIsNeedSSL(basic.getSmtpIsNeedSSL());
		item.setSmtpId(basic.getSmtpId());
		item.setSmtpPassword(basic.getSmtpPassword());
		item.setEmailAddressOfSend(basic.getEmailAddress());
		item.setEmailSender(basic.getEmailSender());
		item.setTitle(item.getTitle()
				.replace("{name}",basic.getName())
				.replace("{url}",basic.getUrl())
				);
		item.setContent(item.getContent()
				.replace("{name}",basic.getName())
				.replace("{url}",basic.getUrl())
				.replace("http://","")
				);
		
		final String smtpId = item.getSmtpId();
		final String smtpPassword = item.getSmtpPassword();
		
		Properties props = System.getProperties();
		props.setProperty("mail.smtp.host", item.getSmtpServer());
		if(item.getSmtpIsNeedSSL()){ //判断是否有SSL安全套接字验证
			Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
			final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
			props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
			props.setProperty("mail.smtp.socketFactory.fallback", "false");
		}
		if(!Validator.isEmpty(item.getSmtpPort())){
			props.setProperty("mail.smtp.port", item.getSmtpPort());
			props.setProperty("mail.smtp.socketFactory.port", item.getSmtpPort());
		}
		if(item.getSmtpIsNeedPassword()){
			props.setProperty("mail.smtp.auth","true");
		}else{
			props.setProperty("mail.smtp.auth","false");
		}	
		Session session = Session.getDefaultInstance(props, new Authenticator(){
		    protected PasswordAuthentication getPasswordAuthentication() {
		    return new PasswordAuthentication(smtpId, smtpPassword);
		}});
		try{   
			MimeMessage msg = new MimeMessage(session);   
			InternetAddress address = new InternetAddress(item.getEmailAddressOfSend());
			msg.setFrom(address);
			msg.setRecipients(Message.RecipientType.TO, 
					  InternetAddress.parse(item.getEmailAddressOfTake(),false));
			msg.setSubject(item.getTitle());  //设置邮件标题
			msg.setText(item.getContent());//设置邮件内容
			msg.setSentDate(new Date());  //邮件发送日期
		   	Transport.send(msg);  //执行发送
            bea = true;
            this.setMessage(super.getMessage("success_email_send"));
		}catch(MessagingException e){
			this.setMessage(super.getMessage("error_email_send"));
			logger.error(e.toString());
		}
		/* 外部包装
		item.setEmailAddressOfTake("");
		item.setEmailTaker("");
		item.setTitle("");
		item.setContent("");
		*/
		return bea;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -