发送邮件

package com.ott.beans;


import java.util.Properties;


/** 
* @author FJ
* @createTime 2016年1月6日 下午3:42:49 
* 类说明,自行编写
*/
public class MailSenderInfo {      
private int id;
    // 发送邮件的服务器的IP和端口      
    private String mailServerHost;      
    private String mailServerPort = "25";      
    // 邮件发送者的地址      
    private String fromAddress;      
    // 邮件接收者的地址      
    private String toAddress;      
    // 登陆邮件发送服务器的用户名和密码      
    private String userName;      
    private String password;      
    // 是否需要身份验证      
    private boolean validate = false;      
    // 邮件主题      
    private String subject;      
    // 邮件的文本内容      
    private String content;      
    // 邮件附件的文件名      
    private String[] attachFileNames;        
    //创建人
    private String createuser;
    //创建时间
    private String createtime;
    //修改人
    private String updateuser;
    //修改时间
    private String updatetime;
    /**    
      * 获得邮件会话属性    
      */      
    public Properties getProperties(){      
      Properties p = new Properties();      
      p.put("mail.smtp.host", this.mailServerHost);      
      p.put("mail.smtp.port", this.mailServerPort);      
      p.put("mail.smtp.auth", validate ? "true" : "false");      
      return p;      
    }      
    
    
    public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getMailServerHost() {      
      return mailServerHost;      
    }      
    public void setMailServerHost(String mailServerHost) {      
      this.mailServerHost = mailServerHost;      
    }     
    public String getMailServerPort() {      
      return mailServerPort;      
    }     
    public void setMailServerPort(String mailServerPort) {      
      this.mailServerPort = mailServerPort;      
    }     
    public boolean isValidate() {      
      return validate;      
    }     
    public void setValidate(boolean validate) {      
      this.validate = validate;      
    }     
    public String[] getAttachFileNames() {      
      return attachFileNames;      
    }     
    public void setAttachFileNames(String[] fileNames) {      
      this.attachFileNames = fileNames;      
    }     
    public String getFromAddress() {      
      return fromAddress;      
    }      
    public void setFromAddress(String fromAddress) {      
      this.fromAddress = fromAddress;      
    }     
    public String getPassword() {      
      return password;      
    }     
    public void setPassword(String password) {      
      this.password = password;      
    }     
    public String getToAddress() {      
      return toAddress;      
    }      
    public void setToAddress(String toAddress) {      
      this.toAddress = toAddress;      
    }      
    public String getUserName() {      
      return userName;      
    }     
    public void setUserName(String userName) {      
      this.userName = userName;      
    }     
    public String getSubject() {      
      return subject;      
    }     
    public void setSubject(String subject) {      
      this.subject = subject;      
    }     
    public String getContent() {      
      return content;      
    }     
    public void setContent(String textContent) {      
      this.content = textContent;      
    }      




public String getCreateuser() {
return createuser;
}




public void setCreateuser(String createuser) {
this.createuser = createuser;
}




public String getCreatetime() {
return createtime;
}




public void setCreatetime(String createtime) {
this.createtime = createtime;
}




public String getUpdateuser() {
return updateuser;
}




public void setUpdateuser(String updateuser) {
this.updateuser = updateuser;
}




public String getUpdatetime() {
return updatetime;
}




public void setUpdatetime(String updatetime) {
this.updatetime = updatetime;
}      

}   







package com.ott.Utils;


import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;


import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;


import org.apache.log4j.Logger;


import com.ott.beans.MailSenderInfo;
import com.ott.beans.MyAuthenticator;
import com.ott.beans.SysUser;
import com.ott.controller.CDNContentController;


/**
 * @author FJ
 * @createTime 2016年1月6日 下午3:42:49 
 * 类说明,自行编写
 */
public class MailUtils {

private static Logger logger = Logger.getLogger(CDNContentController.class);

public static void main(String[] args) {

}


/**
* @param time 1:一审;2:二审
* @param contract 合同
* @return
*/
public static Map<String, Object> contractReviewSend(String verifyflag,MailSenderInfo mailInfo,List<SysUser> users,Map<String, Object> contractMap){
Map<String, Object> map =new HashMap<String, Object>();
String fverify_usernos="";
String tverify_usernos="";
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DecimalFormat    df   = new DecimalFormat("######0.00");
try {
if(verifyflag.equals("1")){
mailInfo.setSubject("合同一审提醒"+format.format(new Date()));

for(SysUser user:users){
 
fverify_usernos=user.getUserno()+","+fverify_usernos;

}
map.put("fverify_usernos", fverify_usernos.substring(0,fverify_usernos.length()-1));

}else{

mailInfo.setSubject("合同二审提醒"+format.format(new Date()));
for(SysUser user:users){

tverify_usernos=user.getUserno()+","+tverify_usernos;

}
map.put("tverify_usernos", tverify_usernos.substring(0,tverify_usernos.length()-1));
}
String content = "<table><tr><td><div>"
+ "<p>"+"您有需要审核的合同:"+"</p></div></td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="影吧名称:";
content +="</td><td>";
content +=contractMap.get("cinema_name");
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="合同编号:";
content +="</td><td>";
content +=contractMap.get("contract_code");
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="合同名称:";
content +="</td><td>";
content +=contractMap.get("contract_name");
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="合同类型:";
content +="</td><td>";
if(String.valueOf(contractMap.get("contract_type")).equals("0")){
content +="普通合同";
}else if(String.valueOf(contractMap.get("contract_type")).equals("1")){
content +="有效场次合同";
}
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="合同有效期:";
content +="</td><td>";
content +=contractMap.get("validstartdate")+"~"+contractMap.get("expiredate");
content +="</td></tr>";

if(String.valueOf(contractMap.get("contract_type")).equals("1")){
content +="<tr><td style ='padding-left:20px;'>";
content +="合同有效场次(次):";
content +="</td><td>";
content +=contractMap.get("playtime");
content +="</td></tr>";
}

content +="<tr><td style ='padding-left:20px;'>";
content +="合同金额(元):";
content +="</td><td>";
content +=df.format(Double.parseDouble(String.valueOf(contractMap.get("contract_amount"))));
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="订单下发方式:";
content +="</td><td>";
if(Integer.parseInt(String.valueOf(contractMap.get("orderflag")))==1){
content +="自动下发";
}else{
content +="手动下发"; 
}
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="服务器数量(台):";
content +="</td><td>";
content +=contractMap.get("server_sum");
content +="</td></tr>";

content +="<tr><td style ='padding-left:20px;'>";
content +="播放器数量(台):";
content +="</td><td>";
content +=contractMap.get("terminal_sum");
content +="</td></tr>";

if(!contractMap.get("contract_describe").equals("") && contractMap.get("contract_describe")!=null){
content +="<tr><td style ='padding-left:20px;'>";
content +="描述:";
content +="</td><td>";
content +=contractMap.get("contract_describe");
content +="</td></tr>";
}

content +="<tr><td style ='padding-left:20px;'>";
content +="产品金额(元):";
content +="</td><td>";
content +="(服务器价格)"+df.format(Double.parseDouble(String.valueOf(contractMap.get("serverPrice"))))+"+"+"(播放器价格)"+df.format(Double.parseDouble(String.valueOf(contractMap.get("terminalPrice"))))+"+"+"(产品包价格)"+df.format(Double.parseDouble(String.valueOf(contractMap.get("package_price"))))+"="
+String.valueOf(df.format(Double.parseDouble(String.valueOf(contractMap.get("serverPrice")))+Double.parseDouble(String.valueOf(contractMap.get("terminalPrice")))+Double.parseDouble(String.valueOf(contractMap.get("package_price")))));
content +="</td></tr>";


content +="<tr><td><div>"
+ "<p>"+"谢谢!"+"</p></div></td></tr></table>";


String toAddress="";
for(SysUser user:users){
if (user.getEmail()==null) {
System.out.println(user.getUsername()+"邮箱为空");
}
toAddress=user.getEmail()+","+toAddress;

}
mailInfo.setToAddress(toAddress.substring(0,toAddress.length()-1));
mailInfo.setContent(content);
boolean result=send(mailInfo);
if(result==true){
map.put("result",true);
map.put("contract_code", contractMap.get("contract_code"));
map.put("contract_name", contractMap.get("contract_name"));
map.put("sendmail_date", new Date());
map.put("mail_content", content);
return map;
}
map.put("result", false);
return map;
} catch (Exception e) {
logger.error("合同审核发送mail error", e);
map.put("result", false);
return map;
}
}


/**
* @param mailInfo 邮件配置信息
* @return
*/
public static boolean send(MailSenderInfo mailInfo) {
try {
// 判断是否需要身份认证
MyAuthenticator authenticator = null;
Properties pro = mailInfo.getProperties();
pro.setProperty("mail.smtp.auth", "true");
pro.put("mail.debug", "true"); 
if (mailInfo.isValidate()) {
// 如果需要身份认证,则创建一个密码验证器
authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
}
// 根据邮件会话属性和密码验证器构造一个发送邮件的session
Session sendMailSession = Session.getDefaultInstance(pro, authenticator);
// 根据session创建一个邮件消息
Message mailMessage = new MimeMessage(sendMailSession);
// 创建邮件发送者地址
Address from = new InternetAddress(mailInfo.getFromAddress());
// 设置邮件消息的发送者
mailMessage.setFrom(from);
// 创建邮件的接收者地址,并设置到邮件消息中
String toAddress=mailInfo.getToAddress();
if (toAddress!= null && toAddress.trim().length() > 0) {  

           String[] arr = toAddress.split(",");  
           int receiverCount = arr.length;  
           if (receiverCount > 0) {  
               InternetAddress[] address = new InternetAddress[receiverCount];  
               for (int i = 0; i < receiverCount; i++) {  
                   address[i] = new InternetAddress(arr[i]);  
               }  
               mailMessage.addRecipients(Message.RecipientType.TO, address);  
               
               
               mailMessage.setSubject(mailInfo.getSubject());  
             
            // 设置邮件消息的主题
    mailMessage.setSubject(mailInfo.getSubject());
    // 设置邮件消息发送的时间
    mailMessage.setSentDate(new Date());
    // 设置邮件消息的主要内容
    mailMessage.setContent(mailInfo.getContent(), "text/html;charset=UTF-8");
    // 发送邮件
    //Transport.send(mailMessage); 
    Transport transport = sendMailSession.getTransport("smtp");
    transport.connect(mailInfo.getMailServerHost(), mailInfo.getUserName(), mailInfo.getPassword());
    transport.sendMessage(mailMessage, mailMessage.getRecipients(RecipientType.TO));
    System.out.println("message yes");
    return true;
           } else {  
               System.out.println("None receiver!");  
               return false;  
           }  
       } else {  
           System.out.println("None receiver!");  
           return false;  
       }  

} catch (MessagingException ex) {
logger.error("发送邮件error", ex);
return false;
}
}



}









提示:如果邮件在短期内发送多了,就会被视为垃圾邮件,于是在一段时间内不能发送邮件,邮箱必须开始SMTP服务,随后会有一个随机第三方登录密码发送给你,只有这个密码才能在第三方软件登录你的邮箱,每一个账号只能申请三次

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值