`
shift8
  • 浏览: 146822 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java mail 发送附件

阅读更多
public static HashMap<String,String> sendEmailToPartner(Object[] toAddress){
		HashMap<String,String> map=new HashMap<String,String>();  
        String message="邮件发送成功!"; 
        map.put("state", "success"); 
        map.put("message", message); 
        
        Message msg =null;
		try {
			//GET PARTNER MAILCONN
			Properties props = new Properties();
			props.put("mail.smtp.host", ChannelConfig.getValue("mail.smtp.host"));
			String port = ChannelConfig.getValue("mail.smtp.port");
			String auth = ChannelConfig.getValue("mail.smtp.auth");
			//IF SERVER NEED AUTH
			if (auth != null && !"".equals(auth.trim()) && "true".equals(auth)){
				props.put("mail.smtp.auth", auth);
				if (port != null && !"".equals(port.trim())){
					props.put("mail.smtp.port", port);  
				}
			}
			else{
				props.put("mail.smtp.auth", "false");
		        props.put("mail.smtp.timeout", "0");
			}
	  
	        Session mailConnection = Session.getDefaultInstance(props); 
			Transport transport = mailConnection.getTransport("smtp");
	        if (auth != null && !"".equals(auth.trim()) && "true".equals(auth)){
	        	transport.connect(ChannelConfig.getValue("mail.smtp.host"), ChannelConfig.getValue("mail.smtp.username"), 
	        			ChannelConfig.getValue("mail.smtp.password"));
	        }
	        else{
	        	transport.connect();
	        }
	        //ATTACH FILE
			msg = new MimeMessage(mailConnection);

			String subject="HP EG 通路計劃管理平台 即日起正式啟用";
	        msg.setSubject(MimeUtility.encodeText(subject,MimeUtility.mimeCharset("UTF-8"), null)); 
	        
			String from=ChannelConfig.getValue("mail.smtp.username");
			Address fromAdd = new InternetAddress(from);
		    msg.setFrom(fromAdd);
		    
			if(toAddress == null || toAddress.length == 0) {
	            return null;
	        }
	        
	        Address[] addressList = new Address[toAddress.length];
	        for (int i = 0; i < toAddress.length; i++)
	        {
	            addressList[i]  = new InternetAddress(toAddress[i].toString());
	        }
	        /*Address[] addressList= new Address[]{new InternetAddress(toAddress.toString())};*/
			msg.setRecipients(Message.RecipientType.BCC, addressList);
			addressList= new Address[]{new InternetAddress("wen-hao.li@hp.com")};
			msg.setRecipients(Message.RecipientType.TO, addressList);
			File currPathFile=new File(Thread.currentThread().getContextClassLoader().getResource("").toURI().getPath());
			File attFile=new File(currPathFile.getParentFile().getParentFile().getPath() + File.separator + "template"+File.separator+"html_tw.html");
			Multipart multipart = new MimeMultipart();
            BodyPart body = new MimeBodyPart();
            DataSource source = new FileDataSource(attFile);
            body.setDataHandler(new DataHandler(source));
            body.setFileName(MimeUtility.encodeText(attFile.getName()));
            multipart.addBodyPart(body);
            msg.setContent(multipart);
            msg.setSentDate(new Date());
	        transport.sendMessage(msg, msg.getAllRecipients());
	        transport.close();
	        return map;
	        
	     } catch(AuthenticationFailedException e){   
	    	 message="邮件发送失败!错误原因:\n"+"身份验证错误!";  
             map.put("state", "failed");  
             map.put("message", message);  
             e.printStackTrace();   
         } catch(AddressException e){   
        	 try {
				message="邮件发送失败!错误原因:\n"+msg.getRecipients(Message.RecipientType.BCC)[0]+"地址错误!";
			} catch (MessagingException e1) {
				e1.printStackTrace();
			} 
             map.put("state", "failed");  
             map.put("message", message);  
             e.printStackTrace();   
          }catch (MessagingException e) {  
            message="邮件发送失败!错误原因:\n"+e.getMessage();  
            map.put("state", "failed");
            map.put("message", message); 
            e.printStackTrace();  
            Exception ex = null;  
            if ((ex = e.getNextException()) != null) {  
                System.out.println(ex.toString());  
                ex.printStackTrace();  
            }   
       } catch (Exception e) {
    	   message="邮件发送失败!错误原因:\n"+e.getMessage();  
           map.put("state", "failed");
           map.put("message", message); 
           e.printStackTrace();
		}  
       return map;  
	}

 

    private static Address[] buildEmaiAddress(String[] addressArray) throws Exception
    {
        if(addressArray == null || addressArray.length == 0) {
            return null;
        }
        
        Address[] addressList = new Address[addressArray.length];
        for (int i = 0; i < addressArray.length; i++)
        {
            addressList[i]  = new InternetAddress(addressArray[i]);
        }
        
        return addressList;
    }

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics