raplamailtouseronlocalhost.java
来自「Rapla是一个灵活的多用户资源管理系统。它提供的一些功能有:日历GUI」· Java 代码 · 共 85 行
JAVA
85 行
/*--------------------------------------------------------------------------*
| Copyright (C) 2006 Christopher Kohlhaas |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by the |
| Free Software Foundation. A copy of the license has been included with |
| these distribution in the COPYING file, if not go to www.fsf.org |
| |
| As a special exception, you are granted the permissions to link this |
| program with every library, which license fulfills the Open Source |
| Definition as published by the Open Source Initiative (OSI). |
*--------------------------------------------------------------------------*/
package org.rapla.plugin.mail.internal;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.Map;
import org.rapla.components.mail.MailException;
import org.rapla.components.mail.MailInterface;
import org.rapla.entities.User;
import org.rapla.entities.configuration.Preferences;
import org.rapla.facade.ClientFacade;
import org.rapla.facade.RaplaComponent;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaException;
import org.rapla.plugin.mail.MailPlugin;
import org.rapla.plugin.mail.MailToUserInterface;
import org.rapla.server.RemoteService;
import org.rapla.server.RemoteSession;
public class RaplaMailToUserOnLocalhost extends RaplaComponent implements MailToUserInterface, RemoteService
{
RemoteSession session;
public RaplaMailToUserOnLocalhost( RaplaContext context) throws RaplaException {
super( context );
}
public void setSession ( RemoteSession session) {
this.session = session;
}
public void sendMail(String userName,String subject, String body) throws RaplaException {
User recipientUser = getQuery().getUser( userName );
// O.K. We need to generate the mail
String recipientEmail = recipientUser.getEmail();
if (recipientEmail == null || recipientEmail.trim().length() == 0) {
getLogger().warn("No email adress specified for user "
+ recipientUser.getUsername()
+ " Can't send mail.");
return;
}
final MailInterface mail = (MailInterface)getContext().lookup(MailInterface.ROLE);
ClientFacade facade = (ClientFacade) getContext().lookup(ClientFacade.ROLE);
Preferences prefs = facade.getPreferences( null);
final String defaultSender = prefs.getEntryAsString( MailPlugin.DEFAULT_SENDER_ENTRY, "rapla");
try {
mail.sendMail( defaultSender, recipientEmail,subject, body);
} catch (MailException ex) {
throw new RaplaException( ex );
}
if ( session != null) {
session.getLogger().info("Email send to user " + userName);
}
}
public void remoteMethodCall( String methodName, Map args, OutputStream out ) throws RaplaException, IOException, ParseException
{
if (SEND_MAIL.is( methodName ))
{
String username = SEND_MAIL.value( args, 0);
String subject= SEND_MAIL.value( args, 1);
String body= SEND_MAIL.value( args, 2);
sendMail( username, subject, body);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?