`

Ofbiz发送邮件

 
阅读更多
由于没有使用它的发送邮件模块,所以要自己实现。但却可以使用它的一些配置设定。
1.配置general.properties
defaultFromEmailAddress=pandy_test@163.com
mail.smtp.relay.host=smtp.163.com
mail.smtp.auth.user=pandy_test@163.com
mail.smtp.auth.password=发送邮箱的密码
mail.smtp.port=25
mail.smtp.socketFactory.port=25


2.假如javamail包
http://www.oracle.com/technetwork/java/javamail/index-138643.html下载javamail的包,并假如工程framework\base\lib,并引入到工程。

3.发送代码。
准备信息:
/**
	 * 通过type和id的组合,找到相应的学员和教练,然后构造密码并发送email,同时修改这个人相应的密码
	 * 
	 * @param type
	 * @param id
	 */
	public static boolean SendPasswordInEmail(String email, String password) {
		Map<String, String> emailContext = new HashMap<String, String>();
		emailContext.put("Subject", UtilProperties.getMessage(resourceError,"modifyPwdEmailSubject", locale));
		emailContext.put("ToEmail", email);
		emailContext.put("cc", "");
		emailContext.put("bcc", "");
		emailContext.put("Text", UtilProperties.getMessage(resourceError,"modifyPwdEmailText", locale));
		emailContext
				.put("HtmlText",
						"	"+UtilProperties.getMessage(resourceError,"modifyPwdEmailContent1", locale)+
						" : <span style='font-family:Arial, Helvetica, sans-serif; font-size:12px; color:#666666; background-color:#EEEEEE;'>"+password+"</span>");
		return SendEmailUtil.sendEmail(emailContext);
	}


发送信息的类:
package org.surpass.tsp.utils;

import java.util.Map;
import java.util.Properties;

import javax.mail.Address;
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 org.ofbiz.base.util.UtilProperties;

public class SendEmailUtil {

	private static boolean isNotBlank(String str) {
		if (str == null)
			return false;
		if (str.trim().length() == 0)
			return false;
		return true;
	}

	public static boolean sendEmail(Map<String, String> emailContext) {
		String defaultFromEmailAddress = UtilProperties.getPropertyValue( "general.properties", "defaultFromEmailAddress");
		String host = UtilProperties.getPropertyValue("general.properties", "mail.smtp.relay.host");
		String user = UtilProperties.getPropertyValue("general.properties", "mail.smtp.auth.user");
		String password = UtilProperties.getPropertyValue("general.properties", "mail.smtp.auth.password");

		Properties props = new Properties();
		props.setProperty("mail.debug", "false");
		props.setProperty("mail.smtp.auth", "true");
		props.setProperty("mail.host", host);
		props.setProperty("mail.transport.protocol", "smtp");
		Session session = Session.getInstance(props);
		javax.mail.Message msg = new MimeMessage(session);
		try {

			msg.setFrom(new InternetAddress(defaultFromEmailAddress));

			if (isNotBlank(emailContext.get("Subject"))) {
				msg.setSubject(emailContext.get("Subject"));
			}

			if (isNotBlank(emailContext.get("HtmlText")) && isNotBlank(emailContext.get("ToEmail"))) {
				Multipart mp = new MimeMultipart();   
		        MimeBodyPart mbp = new MimeBodyPart();   
		        // 设定邮件内容的类型为 text/plain 或 text/html   
		        mbp.setContent(emailContext.get("HtmlText"), "text/html;charset=UTF-8");   
		        mp.addBodyPart(mbp);   
		        msg.setContent(mp);   
		  
		        Transport transport = session.getTransport();
				transport.connect(user, password);
		        //transport.sendMessage(msg, msg.getAllRecipients());
				transport.sendMessage(msg, new Address[] { new InternetAddress( emailContext.get("ToEmail")) });
		        transport.close();
				
				
				
			} else if (isNotBlank(emailContext.get("Text")) && isNotBlank(emailContext.get("ToEmail"))) {
				msg.setText(emailContext.get("Text"));
				Transport transport = session.getTransport();
				transport.connect(user, password);
				transport.sendMessage(msg, new Address[] { new InternetAddress( emailContext.get("ToEmail")) });
				transport.close();
			}

		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
}
分享到:
评论

相关推荐

    Apache+OFBiz+开发初学者指南

    它们根据预定义的XML配置文件执行任务,可以调用服务、发送电子邮件、处理事务等。 3. **服务(Services)**:服务组件是OFBiz的核心,它实现了业务逻辑。服务可以通过本地调用或远程调用来执行,支持同步和异步...

    ofbiz程序结构.txt

    - **Special Purpose**:这部分通常是针对某些特定需求而设计的组件,比如日志记录器、邮件发送器等。这些组件可以根据具体的应用场景进行定制化开发。 - **Hot-Deploy**:热部署机制是OFBiz的一个亮点,它允许...

    OFBIZ2.0 入门手册,适合刚学习的朋友们

    14. **SendMailSMTP**: 实现SMTP协议的邮件发送功能。 **OFBIZ的下载与安装** 1. 安装J2SDK 1.4,设置JAVA_HOME环境变量。 2. 从官方网站http://www.ofbiz.org下载完整版OFBIZ包。 3. 解压缩到指定目录,如"C:\...

    Opentaps开发安装、配置、应用文档

    邮件设置是CRM系统的关键部分,这份文档将详细解释如何配置Opentaps来发送和接收电子邮件,包括SMTP服务器设置、邮件模板创建、自动邮件触发器的设定等。 4. **OPENTAPS结构分析.docx**: 文档可能涵盖了Opentaps...

    OPENTAPS综合资料文档

    文档解释了如何配置邮件服务器,设置发件人、收件人信息,以及处理自动提醒和通知。正确设置邮件服务可以确保业务流程中的有效通信。 **8. OPENTAPS必须阅读** 最后,"OPENTAPS必须阅读"文档可能是对新用户的一些...

Global site tag (gtag.js) - Google Analytics