소스 검색

发送邮件

李天标 5 년 전
부모
커밋
e6656fd048

+ 34 - 0
app-api/src/main/java/com/hboxs/control/api/equipment/AlarmRecordIndexController.java

@@ -2,10 +2,13 @@ package com.hboxs.control.api.equipment;
 
 import com.hboxs.ViewObject.AlarmRecordVo;
 import com.hboxs.common.JsonMessage;
+import com.hboxs.common.utils.MailUtil;
 import com.hboxs.common.utils.YunPianSms;
 import com.hboxs.control.api.BaseController;
+import com.hboxs.entity.Admin;
 import com.hboxs.entity.AlarmRecord;
 import com.hboxs.entity.Equipment;
+import com.hboxs.service.AdminService;
 import com.hboxs.service.AlarmRecordService;
 import com.hboxs.service.EquipmentService;
 import org.apache.commons.lang.StringUtils;
@@ -27,6 +30,9 @@ public class AlarmRecordIndexController extends BaseController {
     @Resource(name = "equipmentServiceImpl")
     private EquipmentService equipmentService;
 
+    @Resource(name = "adminServiceImpl")
+    private AdminService adminService;
+
     private static final String appid = "07784f5fedb508046c841b391005b7de";
     /**
      * 添加报警记录
@@ -69,6 +75,34 @@ public class AlarmRecordIndexController extends BaseController {
         alarmRecord.setRemark(alarmRecordVo.getRemark());
         alarmRecord.setOccurrenceTime(alarmRecordVo.getOccurrenceTime());
         alarmRecordService.save(alarmRecord);
+        Admin admin = adminService.find(adminId);
+        String email = admin.getEmail();
+        String ifForeign = admin.getIfForeign();
+        if(ifForeign.equals("1")){
+            if(email!=null){
+                String subject = "Error message from Magic Candy Machine";
+                StringBuffer contnet = new StringBuffer();
+                String str1="Dear customer<br>" +
+                        "<br>" +
+                        "This is an automatic-sent mail to inform you that there is an error occurred on one of your Magic Candy machines, please kindly check the detail as below.<br>" +
+                        "<br>" +
+                        " Machine name:";
+                String str2="<br>" +" Time&Date:";
+                String str3="<br>"+" Error Message:";
+                String str4= "<br>" +" <br>You don't have to reply this mail . What you need to do is to follow the instructions on the touch screen to clear the error and recover the machine. If there is any question or more information you need . Please do not be hesitated to contact your distributor.<br>" +
+                        "<br>" +
+                        " Thank you for choosing our machine!<br>" +
+                        "<br>" +
+                        "<br>" +
+                        "Best Regards.<br>" +
+                        "Magic Candy Service Team";
+                contnet.append(str1).append(name).append(str2).append(alarmRecordVo.getOccurrenceTime()).append(str3).append(alarmContent).append(str4);
+                new MailUtil().send(email,subject,contnet.toString());
+                return JsonMessage.success("报警记录添加成功");
+            }else {
+                return JsonMessage.error("email is null");
+            }
+        }
         String result = null;
         try {
             String messageReceiver = equipment.getMessageReceiver();

+ 10 - 4
app-api/src/main/java/com/hboxs/control/api/order/CoinOrderController.java

@@ -3,10 +3,8 @@ package com.hboxs.control.api.order;
 import com.alibaba.fastjson.JSONObject;
 import com.gexin.fastjson.JSON;
 import com.hboxs.ViewObject.CoinOrderVo;
-import com.hboxs.common.Filter;
-import com.hboxs.common.JsonMessage;
-import com.hboxs.common.Page;
-import com.hboxs.common.Pageable;
+import com.hboxs.common.*;
+import com.hboxs.common.utils.MailUtil;
 import com.hboxs.control.api.BaseController;
 import com.hboxs.entity.CoinOrder;
 import com.hboxs.service.AdminService;
@@ -35,6 +33,14 @@ public class CoinOrderController extends BaseController {
     @Resource(name = "adminServiceImpl")
     private AdminService adminService;
 
+    @RequestMapping(value = "/email", method = RequestMethod.POST)
+    @ResponseBody
+    public Message email(String toEmail, String subject, String content) {
+        content = "你好";
+        new MailUtil().send(toEmail,subject,content);
+        System.out.println("email....");
+        return SUCCESS_MESSAGE;
+    }
     /**添加线下
      * @param coinOrderVo
      * @return

+ 1 - 0
app-backend-web/src/main/java/com/hboxs/control/admin/AreaController.java

@@ -6,6 +6,7 @@
 package com.hboxs.control.admin;
 
 import com.hboxs.common.Message;
+import com.hboxs.common.utils.MailUtil;
 import com.hboxs.entity.Area;
 import com.hboxs.service.AreaService;
 import org.springframework.stereotype.Controller;

+ 5 - 0
app-backend-web/src/main/java/com/hboxs/control/admin/PromoCodeController.java

@@ -98,6 +98,11 @@ public class PromoCodeController extends BaseController {
             }
         }
         String type = adminService.getCurrent().getType().toValue();
+        Admin admin = adminService.getCurrent();
+        if(admin.getId()!=1){
+            pageable.getFilters().add(Filter.eq("adminId", admin.getId()));
+        }
+
         model.addAttribute("price", money);
         model.addAttribute("type", type);
         model.addAttribute("isUse", isUse);

+ 12 - 0
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminAgency/edit.ftl

@@ -38,6 +38,9 @@ $().ready(function() {
             email: {
                 email: true
             },
+            ifForeign:{
+                required: true
+            },
 			roleIds: "required"
 		},
 		messages: {
@@ -122,6 +125,15 @@ $().ready(function() {
             </tr>
             <tr>
                 <th>
+                    <span class="requiredField">*</span>是否国内:
+                </th>
+                <td>
+                    <label><input name="ifForeign" type="radio" value="0" />是 </label>
+                    <label><input name="ifForeign" type="radio" value="1" />否 </label>
+                </td>
+            </tr>
+            <tr>
+                <th>
                     邮箱:
                 </th>
                 <td>

+ 12 - 0
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminMerchant/edit.ftl

@@ -38,6 +38,9 @@ $().ready(function() {
             email: {
                 email: true
             },
+            ifForeign:{
+                required: true
+            },
 			roleIds: "required"
 		},
 		messages: {
@@ -116,6 +119,15 @@ $().ready(function() {
                     <input type="text" name="name" class="text" value="${admin.name}" maxlength="200" />
                 </td>
             </tr>
+            <tr>
+                <th>
+                    <span class="requiredField">*</span>是否国内:
+                </th>
+                <td>
+                    <label><input name="ifForeign" type="radio" value="0" />是 </label>
+                    <label><input name="ifForeign" type="radio" value="1" />否 </label>
+                </td>
+            </tr>
 			<tr>
 				<th>
 					邮箱:

+ 12 - 0
app-backend-web/src/main/webapp/WEB-INF/template/admin/adminPersonage/edit.ftl

@@ -38,6 +38,9 @@ $().ready(function() {
             email: {
                 email: true
             },
+            ifForeign:{
+                required: true
+            },
 			roleIds: "required"
 		},
 		messages: {
@@ -113,6 +116,15 @@ $().ready(function() {
                     <input type="text" name="name" class="text" value="${admin.name}" maxlength="200" />
                 </td>
             </tr>
+            <tr>
+                <th>
+                    <span class="requiredField">*</span>是否国内:
+                </th>
+                <td>
+                    <label><input name="ifForeign" type="radio" value="0" />是 </label>
+                    <label><input name="ifForeign" type="radio" value="1" />否 </label>
+                </td>
+            </tr>
 			<tr>
 				<th>
 					邮箱:

+ 163 - 0
app-common/src/main/java/com/hboxs/common/utils/MailUtil.java

@@ -0,0 +1,163 @@
+package com.hboxs.common.utils;
+
+import javax.activation.DataHandler;
+import javax.activation.FileDataSource;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+import java.util.Properties;
+import javax.mail.Address;
+import javax.mail.Authenticator;
+import javax.mail.BodyPart;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.mail.Multipart;
+import javax.mail.PasswordAuthentication;
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeUtility;
+
+/**
+ * 阿里云邮件发送
+ */
+public class MailUtil {
+    private static final String ALIDM_SMTP_HOST = "smtp.mxhichina.com";
+//    private static final String ALIDM_SMTP_HOST = "smtpdm.aliyun.com";
+    private static final int ALIDM_SMTP_PORT = 25;// 或80
+
+    // 发件人的账号 和 密码
+    private String user;
+    private String password;
+
+    public MailUtil() {
+//        this("AfterSalesInfo@sunzee.net", "Sz123456");
+        this("magic_candy_sunzee@sunzee.net", "Sz123456");
+    }
+
+    public MailUtil(String user, String password) {
+        this.user = user;
+        this.password = password;
+    }
+
+//    public static void main(String[] args) {
+//        new MailUtil().send("520283710@qq.com", "测试1", "nihao显示");
+        //new MailUtil().send("1161588342@qq.com", "测试1", "市劳动纠纷联赛积分了","C:/Users/guo/Desktop/Proguard.xml");
+//    }
+
+    /**
+     * 发送邮件
+     *
+     * @param toEmail 收件人邮箱地址
+     * @param subject 邮件标题
+     * @param content 邮件内容 可以是html内容
+     */
+    public void send(String toEmail, String subject, String content) {
+        Session session = loadMailSession();
+        // session.setDebug(true);
+        // 创建邮件消息
+        MimeMessage message = new MimeMessage(session);
+        try {
+            // 设置发件人
+            message.setFrom(new InternetAddress(user));
+            Address[] a = new Address[1];
+            a[0] = new InternetAddress(user);
+            message.setReplyTo(a);
+            // 设置收件人
+            InternetAddress to = new InternetAddress(toEmail);
+            message.setRecipient(MimeMessage.RecipientType.TO, to);
+            // 设置邮件标题
+            message.setSubject(subject);
+            // 设置邮件的内容体
+            message.setContent(content, "text/html;charset=UTF-8");
+            // 发送邮件
+            Transport.send(message);
+        } catch (MessagingException e) {
+            String err = e.getMessage();
+            // 在这里处理message内容, 格式是固定的
+            System.out.println(err);
+        }
+    }
+
+
+    /**
+     * 发送邮件 带附件
+     *
+     * @param toEmail    收件人邮箱地址
+     * @param subject    邮件标题
+     * @param content    邮件内容 可以是html内容
+     * @param attachPath 附件路径
+     */
+    public void send(String toEmail, String subject, String content, String attachPath) {
+        Session session = loadMailSession();
+
+        MimeMessage mm = new MimeMessage(session);
+        try {
+            //发件人
+            mm.setFrom(new InternetAddress(user));
+            //收件人
+            mm.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail)); // 设置收件人
+            // mm.setRecipient(Message.RecipientType.CC, new
+            // InternetAddress("XXXX@qq.com")); //设置抄送人
+            //标题
+            mm.setSubject(subject);
+            //内容
+            Multipart multipart = new MimeMultipart();
+            //body部分
+            BodyPart contentPart = new MimeBodyPart();
+            contentPart.setContent(content, "text/html;charset=utf-8");
+            multipart.addBodyPart(contentPart);
+
+            //附件部分
+            BodyPart attachPart = new MimeBodyPart();
+            FileDataSource fileDataSource = new FileDataSource(attachPath);
+            attachPart.setDataHandler(new DataHandler(fileDataSource));
+            attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName()));
+            multipart.addBodyPart(attachPart);
+
+            mm.setContent(multipart);
+            Transport.send(mm);
+        } catch (Exception e) {
+            String err = e.getMessage();
+            // 在这里处理message内容, 格式是固定的
+            System.out.println(err);
+        }
+
+    }
+
+    private Session loadMailSession() {
+        try {
+            // 配置发送邮件的环境属性
+            final Properties props = new Properties();
+            // 表示SMTP发送邮件,需要进行身份验证
+            props.put("mail.smtp.auth", "true");
+            props.put("mail.smtp.host", ALIDM_SMTP_HOST);
+            // props.put("mail.smtp.port", ALIDM_SMTP_PORT);
+            // 如果使用ssl,则去掉使用25端口的配置,进行如下配置,
+            props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
+            props.put("mail.smtp.socketFactory.port", "465");
+            props.put("mail.smtp.port", "465");
+            // 发件人的账号
+            props.put("mail.user", user);
+            // 访问SMTP服务时需要提供的密码
+            props.put("mail.password", password);
+            // 构建授权信息,用于进行SMTP进行身份验证
+            Authenticator authenticator = new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    // 用户名、密码
+                    String userName = props.getProperty("mail.user");
+                    String password = props.getProperty("mail.password");
+                    return new PasswordAuthentication(userName, password);
+                }
+            };
+            // 使用环境属性和授权信息,创建邮件会话
+            return Session.getInstance(props, authenticator);
+        } catch (Exception e) {
+            e.printStackTrace();
+            System.out.println("mail session is null");
+        }
+        return null;
+    }
+
+}

+ 6 - 0
pom.xml

@@ -388,6 +388,12 @@
             <artifactId>jdom</artifactId>
             <version>1.1.3</version>
         </dependency>
+        <!--邮箱-->
+        <dependency>
+            <groupId>javax.mail</groupId>
+            <artifactId>mail</artifactId>
+            <version>1.4.7</version>
+        </dependency>
         <dependency>
             <groupId>org.jsoup</groupId>
             <artifactId>jsoup</artifactId>