|  |  |  |  | import com.dassault_systemes.enovia.changerequest.impl.AffectedItem; | 
					
						
							|  |  |  |  | import com.dassault_systemes.enovia.enterprisechangemgt.common.ChangeAction; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | import matrix.db.Context; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | import javax.mail.*; | 
					
						
							|  |  |  |  | import javax.mail.internet.InternetAddress; | 
					
						
							|  |  |  |  | import javax.mail.internet.MimeMessage; | 
					
						
							|  |  |  |  | import java.util.HashMap; | 
					
						
							|  |  |  |  | import java.util.Map; | 
					
						
							|  |  |  |  | import java.util.Properties; | 
					
						
							|  |  |  |  | import java.util.logging.Logger; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public class AegChange3_mxJPO { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     private static final Logger LOGGER = Logger.getLogger(AegChange3_mxJPO.class.getName()); | 
					
						
							|  |  |  |  |     private static final String SEND_EMAIL = "aeg-scan@csge.com"; | 
					
						
							|  |  |  |  |     private static final String SEND_PASSWORD = "abcd-1234"; | 
					
						
							|  |  |  |  |     private static final String SMTP_HOST = "smtp.qiye.aliyun.com"; | 
					
						
							|  |  |  |  |     private static final String SMTP_PORT = "25"; | 
					
						
							|  |  |  |  |     private static final String EMAIL = "1654607107@qq.com"; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     public void AegChangeNotify(Context context, String[] args) throws Exception { | 
					
						
							|  |  |  |  |         String caId = args[0]; | 
					
						
							|  |  |  |  |         LOGGER.info("caId == > " + caId); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | //        String getChangeType = "print bus " + caId + " select type dump |";
 | 
					
						
							|  |  |  |  | //        String changeType = MqlUtil.mqlCommand(context, getChangeType);
 | 
					
						
							|  |  |  |  | //
 | 
					
						
							|  |  |  |  | //        if("Change Action".equals(changeType)){
 | 
					
						
							|  |  |  |  | //
 | 
					
						
							|  |  |  |  | //            String getCAInfo = "print bus " + caId + " select name attribute[Synopsis] description attribute[XP_ChangeAction_Ext.DistributionPersonList] attribute[Originator] dump |";
 | 
					
						
							|  |  |  |  | //            String caInfo = MqlUtil.mqlCommand(context, getCAInfo);
 | 
					
						
							|  |  |  |  | //
 | 
					
						
							|  |  |  |  | //            String[] caInfoItem = caInfo.split("\\|");
 | 
					
						
							|  |  |  |  | //
 | 
					
						
							|  |  |  |  | //        }
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         ChangeAction changeAction = new ChangeAction(""); | 
					
						
							|  |  |  |  |         changeAction.getAffectedItems(context); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Map<String, String> map = new HashMap<>(); | 
					
						
							|  |  |  |  |         map.put("projectName", "123"); | 
					
						
							|  |  |  |  |         map.put("taskName", "123"); | 
					
						
							|  |  |  |  |         map.put("description", "123"); | 
					
						
							|  |  |  |  |         map.put("DocumentRecipient", "123"); | 
					
						
							|  |  |  |  |         map.put("taskOwner", "123"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         send(map); | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |     public void send(Map<String, String> itemMap){ | 
					
						
							|  |  |  |  |         LOGGER.info("=============> + <================="); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Properties properties = new Properties(); | 
					
						
							|  |  |  |  |         properties.put("mail.smtp.auth", "true"); | 
					
						
							|  |  |  |  |         properties.put("mail.smtp.starttls.enable", "true"); | 
					
						
							|  |  |  |  |         properties.put("mail.smtp.host", SMTP_HOST); | 
					
						
							|  |  |  |  |         properties.put("mail.smtp.port", SMTP_PORT); | 
					
						
							|  |  |  |  |         properties.put("mail.smtp.ssl.protocols", "TLSv1.2"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Session session = Session.getInstance(properties, | 
					
						
							|  |  |  |  |                 new javax.mail.Authenticator() { | 
					
						
							|  |  |  |  |                     protected PasswordAuthentication getPasswordAuthentication() { | 
					
						
							|  |  |  |  |                         return new PasswordAuthentication(SEND_EMAIL, SEND_PASSWORD); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 }); | 
					
						
							|  |  |  |  |         session.setDebug(true); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         Message message = new MimeMessage(session); | 
					
						
							|  |  |  |  |         try { | 
					
						
							|  |  |  |  |             message.setFrom(new InternetAddress(SEND_EMAIL)); | 
					
						
							|  |  |  |  |             message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(EMAIL)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             String body = "<div style=\"text-align: center;margin-left:12px;margin-right: 12px;margin-top:100px;background-color:#005685;\n" + | 
					
						
							|  |  |  |  |                     "                    ;border-radius: 30px\">" + | 
					
						
							|  |  |  |  |                     " <div style=\"padding-top: 30px;padding-left: 50px;padding-right: 50px\">\n" + | 
					
						
							|  |  |  |  |                     "            <p style=\"text-align: center;color:azure;font-size: xx-large\">" + itemMap.get("projectName") + "</p>\n" + | 
					
						
							|  |  |  |  |                     "        </div>" + | 
					
						
							|  |  |  |  |                     "        <div style=\"display: flex;justify-content: center;align-items: center\">\n" + | 
					
						
							|  |  |  |  |                     "            <div style=\"padding-left: 30px;background-color: white;border-radius: 10px;height: 260px;min-width:400px;padding-top: 30px;\">\n" + | 
					
						
							|  |  |  |  |                     "                <p style=\"text-align: left;color: grey;font-size:large\">" + "\u4efb\u52a1\u540d\u79f0: " + itemMap.get("taskName") + "</p>\n" + | 
					
						
							|  |  |  |  |                     "                <p style=\"text-align: left;color: grey;font-size:large\">" + "\u4efb\u52a1\u63cf\u8ff0: " + itemMap.get("description") + "</p>\n" + | 
					
						
							|  |  |  |  |                     "                <p style=\"text-align: left;color: grey;font-size:large\">" + "\u4efb\u52a1\u6240\u6709\u8005: " + itemMap.get("taskOwner") + "</p>\n" + | 
					
						
							|  |  |  |  |                     "                <p style=\"text-align: left;color: grey;font-size:large\">" + "\u6587\u4ef6\u63a5\u6536\u4eba: " + itemMap.get("DocumentRecipient") + "</p>\n" + | 
					
						
							|  |  |  |  |                     "                <a href=\"https://plm.aegpm.com/3ddashboard\" style=\"font-size:medium\">查看任务</a>\n" + | 
					
						
							|  |  |  |  |                     "            </div>\n" + | 
					
						
							|  |  |  |  |                     "        </div>\n" + | 
					
						
							|  |  |  |  |                     " <div style=\" padding-top:10px;color: white;padding-left: 20px;padding-right: 20px\" >\n" + | 
					
						
							|  |  |  |  |                     "            <p>\u672c\u90ae\u4ef6\u53ca\u6240\u6709\u9644\u4ef6\u4ec5\u4f9b\u6536\u4ef6\u5730\u5740\u4e2d\u7684\u4e2a\u4eba\u6216\u5b9e\u4f53\u4f7f\u7528\uff0c\u8fd9\u4e9b\u5185\u5bb9\u5747\u5c5e\u673a\u5bc6\u4fe1\u606f\u5e76\u6216\u8bbe\u6709\u6743\u9650</p>\n" + | 
					
						
							|  |  |  |  |                     "        </div>\n" + | 
					
						
							|  |  |  |  |                     "        <div style=\"display: flex;justify-content: center;align-items: center;margin-bottom: 50px\">\n" + | 
					
						
							|  |  |  |  |                     "            <p style=\"text-align: left;margin-left:50px;margin-right: 50px;color:lightgray;font-size: small\">\u5982\u679c\u60a8\u4e0d\u662f\u4efb\u4f55\u6307\u5b9a\u7684\u6536\u4ef6\u4eba\u6216\u8bef\u6536\u5230\u672c\u90ae\u4ef6,<br>\n" + | 
					
						
							|  |  |  |  |                     "            (i) \u60a8\u4e0d\u80fd\u9605\u8bfb\u3001\u6cc4\u6f0f\u6216\u590d\u5236\u672c\u90ae\u4ef6;<br>\n" + | 
					
						
							|  |  |  |  |                     "            (ii) \u8bf7\u901a\u8fc7\u7535\u5b50\u90ae\u4ef6\u901a\u77e5\u60a8\u6536\u4ef6\u7684\u53d1\u4ef6\u4eba\u5e76\u5220\u9664\u672c\u90ae\u4ef6\u53ca\u6240\u6709\u9644\u4ef6;<br>\n" + | 
					
						
							|  |  |  |  |                     "            (iii) \u5bf9\u4e8e\u56e0\u4f7f\u7528\u6216\u4f9d\u636e\u672c\u90ae\u4ef6\u800c\u5f15\u8d77\u7684\u4efb\u4f55\u635f\u5931\u6216\u635f\u5bb3,Dassault Systemes \u6982\u4e0d\u8d1f\u8d23\u6216\u627f\u62c5\u8d23\u4efb。</p>\n" + | 
					
						
							|  |  |  |  |                     "        </div>\n" + | 
					
						
							|  |  |  |  |                     "    </div>"; | 
					
						
							|  |  |  |  |             message.setSubject("subject"); | 
					
						
							|  |  |  |  |             message.setContent(body, "text/html;charset=utf-8"); | 
					
						
							|  |  |  |  |             Transport.send(message); | 
					
						
							|  |  |  |  |         } catch (MessagingException e) { | 
					
						
							|  |  |  |  |             throw new RuntimeException(); | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |