- 浏览: 217011 次
- 性别:
- 来自: 湖北->上海
最新评论
-
苹果超人:
我也遇到这个问题,我想在ConfigurationAction ...
杀千刀的PortletPreferences -
flago:
Liferay 的论坛设置的默认显示多少条帖子怎么设置??
liferay中vm中如何调用java类代码 -
ofdata:
遭遇此问题
杀千刀的PortletPreferences -
yaokaiwen99:
大哥求一个简单的flexigrid在liferay中应用的例 ...
Liferay异步提交 -
gaigai511225:
你好 插件环境那个url 具体怎么写 我照您的方式写了出错 ...
Liferay异步提交
liferay的邮件发送写的异常复杂,用了配置文件,我只要一个简单的发送功能,用他的实在是杀鸡用牛刀,自已写了一个发送的类,代码如下:
package com.ext.portlet.mail;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SendMail {
private static Log log = LogFactory.getLog(SendMail.class);
private MimeMessage mimeMsg; // MIME邮件对象
private Session session; // 邮件会话对象
private Properties props; // 系统属性
private boolean needAuth = false; // smtp是否需要认证
private String username = ""; // smtp认证用户名和密码
private String password = "";
private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
/**
*
*/
public SendMail() {
setSmtpHost("");// 如果没有指定邮件服务器,就从getConfig类中获取
createMimeMessage();
}
public SendMail(String smtp) {
setSmtpHost(smtp);
createMimeMessage();
}
/**
* @param hostName
* String
*/
public void setSmtpHost(String hostName) {
log.info("Setting system properties...mail.smtp.host = " + hostName);
if (props == null)
props = System.getProperties(); // 获得系统属性对象
props.put("mail.smtp.host", hostName); // 设置SMTP主机
}
/**
* @return boolean
*/
public boolean createMimeMessage() {
try {
log.info("Ready to get the mail session object...");
session = Session.getDefaultInstance(props, null); // 获得邮件会话对象
} catch (Exception e) {
log.error("Get a error when init the session object..." + e);
return false;
}
log.info("Ready to create MIME mail object...");
try {
mimeMsg = new MimeMessage(session); // 创建MIME邮件对象
mp = new MimeMultipart();
return true;
} catch (Exception e) {
log.error("Fail to create MIME mail object..." + e);
return false;
}
}
/**
* @param need
* boolean
*/
public void setNeedAuth(boolean need) {
log.info("Setting SMTP auth...mail.smtp.auth = " + need);
if (props == null)
props = System.getProperties();
if (need) {
props.put("mail.smtp.auth", "true");
} else {
props.put("mail.smtp.auth", "false");
}
}
/**
* @param name
* String
* @param pass
* String
*/
public void setNamePass(String name, String pass) {
username = name;
password = pass;
}
/**
* @param mailSubject
* String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
log.info("Setting mail subject...");
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
log.error("Fail to setting the mail subject...");
return false;
}
}
/**
* @param mailBody
* String
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
+ mailBody, "text/html;charset=GB2312");
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
log.error("Fail to setting the mail content" + e);
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean addFileAffix(String filename) {
System.out.println("Add annex..." + filename);
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
log.error("Add annex:" + filename + "error" + e);
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setFrom(String from) {
log.info("Setting From...");
try {
mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setTo(String to) {
if (to == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(to));
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean sendout() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
log.info("Sending....");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String) props.get("mail.smtp.host"), username,
password);
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(javax.mail.Message.RecipientType.TO));
// transport.send(mimeMsg);
log.info("Send mail success");
transport.close();
return true;
} catch (Exception e) {
log.error("Send mail fail" + e);
e.printStackTrace();
return false;
}
}
}
package com.ext.portlet.mail;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
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 org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SendMail {
private static Log log = LogFactory.getLog(SendMail.class);
private MimeMessage mimeMsg; // MIME邮件对象
private Session session; // 邮件会话对象
private Properties props; // 系统属性
private boolean needAuth = false; // smtp是否需要认证
private String username = ""; // smtp认证用户名和密码
private String password = "";
private Multipart mp; // Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
/**
*
*/
public SendMail() {
setSmtpHost("");// 如果没有指定邮件服务器,就从getConfig类中获取
createMimeMessage();
}
public SendMail(String smtp) {
setSmtpHost(smtp);
createMimeMessage();
}
/**
* @param hostName
* String
*/
public void setSmtpHost(String hostName) {
log.info("Setting system properties...mail.smtp.host = " + hostName);
if (props == null)
props = System.getProperties(); // 获得系统属性对象
props.put("mail.smtp.host", hostName); // 设置SMTP主机
}
/**
* @return boolean
*/
public boolean createMimeMessage() {
try {
log.info("Ready to get the mail session object...");
session = Session.getDefaultInstance(props, null); // 获得邮件会话对象
} catch (Exception e) {
log.error("Get a error when init the session object..." + e);
return false;
}
log.info("Ready to create MIME mail object...");
try {
mimeMsg = new MimeMessage(session); // 创建MIME邮件对象
mp = new MimeMultipart();
return true;
} catch (Exception e) {
log.error("Fail to create MIME mail object..." + e);
return false;
}
}
/**
* @param need
* boolean
*/
public void setNeedAuth(boolean need) {
log.info("Setting SMTP auth...mail.smtp.auth = " + need);
if (props == null)
props = System.getProperties();
if (need) {
props.put("mail.smtp.auth", "true");
} else {
props.put("mail.smtp.auth", "false");
}
}
/**
* @param name
* String
* @param pass
* String
*/
public void setNamePass(String name, String pass) {
username = name;
password = pass;
}
/**
* @param mailSubject
* String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
log.info("Setting mail subject...");
try {
mimeMsg.setSubject(mailSubject);
return true;
} catch (Exception e) {
log.error("Fail to setting the mail subject...");
return false;
}
}
/**
* @param mailBody
* String
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent(
"<meta http-equiv=Content-Type content=text/html; charset=gb2312>"
+ mailBody, "text/html;charset=GB2312");
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
log.error("Fail to setting the mail content" + e);
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean addFileAffix(String filename) {
System.out.println("Add annex..." + filename);
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());
mp.addBodyPart(bp);
return true;
} catch (Exception e) {
log.error("Add annex:" + filename + "error" + e);
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setFrom(String from) {
log.info("Setting From...");
try {
mimeMsg.setFrom(new InternetAddress(from)); // 设置发信人
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setTo(String to) {
if (to == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(to));
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.CC,
(Address[]) InternetAddress.parse(copyto));
return true;
} catch (Exception e) {
return false;
}
}
/**
* @param name
* String
* @param pass
* String
*/
public boolean sendout() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
log.info("Sending....");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String) props.get("mail.smtp.host"), username,
password);
transport.sendMessage(mimeMsg, mimeMsg
.getRecipients(javax.mail.Message.RecipientType.TO));
// transport.send(mimeMsg);
log.info("Send mail success");
transport.close();
return true;
} catch (Exception e) {
log.error("Send mail fail" + e);
e.printStackTrace();
return false;
}
}
}
发表评论
-
JSR 286 Portlet 的新特性,第 3 部分: Portlet 过滤器和 Portlet 窗口
2010-06-01 10:24 2488在 本系列 的 第 1 部分 简要回顾了JSR 1 ... -
JSR 286 Portlet 的新特性,第 2 部分: 资源服务、事件与共享呈现参数
2010-05-31 18:42 2201在本系列的 第 1 部分 简要回顾了 J ... -
JSR 286 Portlet 的新特性,第 1 部分: Portlet 2.0 新特性介绍
2010-05-31 17:55 2379本系列文章专门针 ... -
Session share
2010-05-14 12:18 0Tomcat Server.xml <Servi ... -
Liferay集群负载均衡配置
2009-10-30 11:14 4882先介绍一下项目系统的环境, Liferay Version: ... -
Liferay 集群部署
2009-10-30 00:00 0十二点了,明天断续 -
Liferay 权限策略
2009-10-29 23:45 3094先上一张大家都很熟悉的图 这张图可以说是整 ... -
Liferay Portlet之间的通信
2009-10-29 19:12 5007从我做Liferay到现在,这个问题一直都存在着,直到最近我才 ... -
Liferay异步提交
2009-10-29 18:06 3396liferay的异步提交其实是非常简单的,他用的是json & ... -
Liferay异步刷新
2009-10-29 18:05 3171Liferay portlet异步刷新,分为两种情况。 ... -
准备开始整理半年来对lifeay新的学习成果
2009-10-29 18:04 1491有半年没有写过liferay的blog了,不过对life ... -
Ajax知识
2009-06-11 17:50 0<SCRIPT LANGUAGE=" ... -
改变Liferay Portal Context(让Liferay不在使用ROOT目录)
2009-05-25 22:46 1825在部署的时候如果遇到我们会遇到让liferay与其他的项目并存 ... -
velocity调用DB持久层,生成actionurl
2009-05-22 17:42 1173#set($hostelCacheService = $ser ... -
liferay 所有版本下载地址
2009-05-21 13:29 3207从1.7.5一直到现在的5.2.3,应有尽有。 htt ... -
liferay ldap配置与相关代码
2008-11-28 11:06 38221.下载LDAP server 并安装, liferay支 ... -
liferay 的加密技术(CRYPT,SHA,SSHA,MD2,MD5)
2008-11-27 15:59 4286package com.liferay.util; impo ... -
liferay openid配置与代码详解
2008-11-21 21:14 28251.liferay的openid的配置很简单的,先去 open ... -
liferay验证码认证
2008-08-27 15:26 2734生成验证码相关: /** * Copyright (c ... -
很烦,想站在阳台上大声的喊
2008-08-20 19:42 1794终于到回家了,好累, ...
相关推荐
- **创建一个邮件会话绑定到mail/MailSession**: 设置邮件发送服务。 - **配置JAAS**: 介绍如何配置Java Authentication and Authorization Service (JAAS)。 - **创建$TOMCAT_HOME/conf/jaas.config**: 创建JAAS...
使用`LanguageUtil`类,我们可以在JSP或Java代码中根据用户locale动态获取这些国际化信息。 接着,我们讨论portlet属性的国际化。在创建portlet时,可以通过设置“Create resource bundle file”选项自动生成资源...
这个文件夹可能包含了Liferay邮件服务相关的JMS(Java消息服务)文件。JMS是Java平台上的标准API,用于发送和接收消息,Liferay Message Bus可能使用JMS作为底层实现,以便在不同的服务和组件之间进行消息传递。 2. ...
Liferay中常见的Appenders包括`ConsoleAppender`(输出到控制台)、`FileAppender`(写入文件)和`SMTPAppender`(通过电子邮件发送)。例如,`<appender-ref ref="FILE" />`会将日志信息写入指定的文件。 3. **...
- **发送HTTP GET请求**:使用`HttpURLConnection`类创建到指定URL的连接。设置认证头后,连接并读取响应。在示例中,定义了一个名为`httpGet`的方法,它接受一个路径URL作为参数,处理HTTP GET请求并返回响应体。 ...
8. **编译与部署**:由于是用JSP开发的,开发者需要将源代码编译成Java类,然后打包成WAR(Web Application Archive)文件,通过Liferay的控制台或部署工具部署到服务器上。 综上所述,"Liferay Portlet 站内消息...
如果已经配置了邮件服务器,系统会向新用户发送一封包含欢迎信息和初始密码的邮件。默认情况下,新用户将被分配到Power Users和Users角色,登录后显示的界面会根据系统语言设置自动本地化。 3. 增加页面: 想要...
- **邮件服务配置**:配置SMTP服务器信息,以便发送激活邮件等。 - **安全性配置**:如启用SSL加密、设置登录失败次数限制等。 - **性能优化**:可以通过调整缓存策略、开启压缩等方式提高系统性能。 ### 开发与...
4. **邮件集成**:集成邮件系统,实现邮件的自动发送和接收。 5. **短信平台集成**:集成短信服务,实现短信通知等功能。 6. **业务系统定制集成**:根据具体业务需求,定制化地集成各种业务系统。 系统集成的方式...
- `mail.host`: SMTP服务器地址,用于发送邮件通知。 - `mail.port`: SMTP服务器端口号。 - `mail.from.address`: 发送邮件的默认发件人地址。 - `mail.smtp.auth`: 是否需要SMTP认证。 5. **主题与布局** - `...
邮件主机名设置则用于配置SMTP服务器,以便发送系统通知和验证邮件。 5. **自动部署**:自动部署功能允许开发者快速测试和部署新的portlet或服务,大大提高了开发效率。 接下来是社区模块,Liferay的社区功能允许...
### Liferay Portal 二次开发指南知识点详析 #### 一、Liferay Portal 架构解析 **1.1 Portal 规范** ##### 1.1.1 JSR 168 JSR 168 是 Java Portlet 技术的标准之一,由 Java Community Process (JCP) 发布。它...
Luminis 5 / Liferay 6.2课程/站点电子邮件Portlet 该portlet使站点/课程的用户能够从站点/课程发送电子邮件。 可以将其添加到站点/课程页面,以便用户可以向站点/课程中的其他人发送电子邮件。 用户可以搜索要添加...
(或者:浏览至通过电子邮件发送的文件)。 git clone https://github.com/nananananate/liferay-challengecd liferay-challenge要运行CLI应用程序( .jar文件),请使用以下命令: 视窗: java -jar .\out\...
在IT行业中,Liferay是一款广泛使用的开源企业级内容管理和数字体验平台。...它涵盖了从后端数据库存储、服务接口设计、邮件发送、前端展示到用户交互的全过程,是学习和实践企业级应用开发的一个优秀实例。
- `JobClass.java`: 实现`MessageListener`的类,它会在预定的时间执行任务逻辑,如发送邮件、更新数据等。 - `SchedulerEntry`: 在`liferay-plugin-package.xml`中声明的计划任务,指明了作业类、触发器信息和...
基于Liferay Web Form portlet:添加文件上传功能和其他杂项。 这是一个新的 Web 表单 portlet,您可以将它与需要文件上传控件的表单一起使用。 文件将上传到磁盘(您可以指定绝对路径位置)或 Documents and ...
Ajax Jquery Portlet 这个 portlet 是为了帮助那些希望看到 Ajax 在 Liferay Portlet 中使用 ... 对于您发现的任何错误/增强功能,请发送邮件至上详细说明。 部署和使用步骤: 这个 portlet 的部署就像 Liferay 的其
- **Liferay Hooks**和**Liferay Plugins SDK**:对于使用Liferay Portal的开发者,理解如何利用这些工具进行portlet开发和定制是十分重要的。 - **Portlet渲染参数**:允许portlet之间传递信息,实现协同工作。 - *...