Package com.google.code.lightssh.project.mail.service

Source Code of com.google.code.lightssh.project.mail.service.EmailSendManagerImpl

package com.google.code.lightssh.project.mail.service;

import javax.annotation.Resource;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import com.google.code.lightssh.common.config.SystemConfig;
import com.google.code.lightssh.common.mail.Address;
import com.google.code.lightssh.common.mail.MailAddress;
import com.google.code.lightssh.common.mail.MailContent;
import com.google.code.lightssh.common.mail.sender.MailSender;
import com.google.code.lightssh.common.model.ConnectionConfig;
import com.google.code.lightssh.common.util.TextFormater;
import com.google.code.lightssh.project.mail.MailConfigConstants;
import com.google.code.lightssh.project.mail.entity.EmailContent;
import com.google.code.lightssh.project.param.service.SystemParamManager;
import com.google.code.lightssh.project.security.entity.LoginAccount;

/**
* @author YangXiaojin
* @date 2013-1-17
* @description:TODO
*/
@Component("emailSendManager")
public class EmailSendManagerImpl implements EmailSendManager{

  private static final long serialVersionUID = 5592731164104327648L;
 
  @Resource(name="mailSender")
  private MailSender mailSender;
 
  /**
   * 系统参数
   */
  @Resource(name="systemConfig")
  private SystemConfig systemConfig;
 
  @Resource(name="systemParamManager")
  private SystemParamManager systemParamManager;
 
  @Resource(name="emailContentManager")
  private EmailContentManager emailContentManager;
 
  protected ConnectionConfig getEmailConnectionConfig( ){
    ConnectionConfig config = null;
   
    if( systemParamManager != null ){
      config = systemParamManager.getEmailConnectionConfig();
    }
   
    if( systemConfig == null )
      return config;
   
    if( config == null ){
      config = new ConnectionConfig();
     
      config.setHost( this.systemConfig.getProperty(
          MailConfigConstants.EMAIL_HOST_KEY ) );
     
      config.setPort( this.systemConfig.getProperty(
          MailConfigConstants.EMAIL_PORT_KEY ) );
     
      config.setUsername( this.systemConfig.getProperty(
          MailConfigConstants.EMAIL_USERNAME_KEY ) );
     
      config.setPassword( this.systemConfig.getProperty(
          MailConfigConstants.EMAIL_PASSWORD_KEY ) );
     
      config.setSsl( "true".equalsIgnoreCase(systemConfig.getProperty(
          MailConfigConstants.EMAIL_SSL_KEY ) ));
    }
   
    return config;
  }

 
  /**
   * 发邮件
   */
  public void send(EmailContent ec ){
    ConnectionConfig config = getEmailConnectionConfig();
   
    MailAddress mailAddress = new MailAddress( );
    mailAddress.setFrom(config.getUsername(),config.getUsername());
   
    for( String item:ec.getAddressees())
      mailAddress.addTo(item, "");
   
    if( !StringUtils.isEmpty(ec.getCc()) ){
      for( String item:ec.getCcs())
        mailAddress.addCc(item, "");
    }
   
    boolean success = false;
    try{
      mailSender.sendHtml(config,mailAddress
          ,new MailContent(ec.getSubject(),ec.getContent()));
      success = true;
    }catch( Exception e ){
      ec.setErrMsg( TextFormater.format(e.getMessage(),197,true) );
    }
   
    ec.setSender( config.getUsername() );
   
    emailContentManager.updateStatus(success,ec);
  }
 
  /**
   * 忘记用户名
   */
  public void forgotUsername(String title, String email ){
    ConnectionConfig config = getEmailConnectionConfig();
    Address to = new Address(email,title);
    Address from = new Address(config.getUsername(),config.getUsername());
    MailAddress mailAddress = new MailAddress( to,from );
   
    StringBuffer content = new StringBuffer();
    content.append("您在系统的登录帐号为:" + title);
   
    mailSender.send(config,mailAddress
        ,new MailContent("用户帮助",content.toString()));
  }
 
  /**
   * 忘记密码
   */
  public void forgotPassword(String retrieveUrl, LoginAccount account ){
    if( account == null || StringUtils.isEmpty(account.getEmail()) )
      return ;
   
    ConnectionConfig config = getEmailConnectionConfig();
    Address to = new Address(account.getEmail(),account.getLoginName());
    Address from = new Address(config.getUsername(),config.getUsername());
    MailAddress mailAddress = new MailAddress( to,from );
   
    StringBuffer content = new StringBuffer();
    content.append("<html>");
    //content.append("<img src=\"http://www.gstatic.com/codesite/ph/images/defaultlogo.png\"></br>");
    content.append("\n要重设您系统帐户 "+account.getLoginName()+" 的密码,请点击以下链接:" );
    content.append( "<a href=\""+retrieveUrl+"\">点击重设密码</a>" );
    content.append("\n如果点击以上链接没有反应,请将该网址复制并粘贴到新的浏览器窗口中。" );
    content.append("\n"+retrieveUrl);
    content.append("</html>");
   
    mailSender.sendHtml(config,mailAddress
        ,new MailContent("用户帮助-找回登录密码",content.toString()));

  }

}
TOP

Related Classes of com.google.code.lightssh.project.mail.service.EmailSendManagerImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.