mg
2022-10-09 d1a23c0144066e118b0b5f6b3bb65bf783759741
添加邮件发送功能
5个文件已修改
1个文件已添加
98 ■■■■■ 已修改文件
pom.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/resources/application-dev.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml
@@ -186,6 +186,16 @@
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>3.1.3</version>
        </dependency>
        <!-- send_mail -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
</project>
ycl-common/src/main/java/com/ycl/dto/UmsAdminParam.java
@@ -51,7 +51,7 @@
    private Long departmentId;
    @ApiModelProperty(value = "用户类型")
    private byte userType;
    private Integer userType;
    @ApiModelProperty(value = "座机/分机")
    private String zj;
ycl-platform/pom.xml
@@ -26,11 +26,6 @@
            <version>1.0.0</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
ycl-platform/src/main/java/com/ycl/common/util/PropertyValueUtil.java
New file
@@ -0,0 +1,26 @@
package com.ycl.common.util;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
 * <p>
 * 类说明
 * </p>
 *
 * @author mg
 * @since 2022-10-09
 */
@Component
@ConfigurationProperties(prefix = "file")
@Data
public class PropertyValueUtil {
    @Value("${mail.host}")
    private String host;
    @Value("${mail.username}")
    private String username;
    @Value("${mail.authorizationCode}")
    private  String authorizationCode;
}
ycl-platform/src/main/java/com/ycl/service/message/factory/MailSender.java
@@ -1,8 +1,15 @@
package com.ycl.service.message.factory;
import com.ycl.common.util.PropertyValueUtil;
import com.ycl.dto.message.MessageParam;
import com.ycl.entity.message.Message;
import com.ycl.service.message.Sender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;
/**
 * <p>
@@ -12,9 +19,51 @@
 * @author mg
 * @since 2022-10-09
 */
@Component
public class MailSender implements Sender {
    private final Logger logger = LoggerFactory.getLogger(getClass());
    private static InnerSender innerSender;
    @Autowired
    public void setIMessageService(InnerSender innerSender) {
        MailSender.innerSender = innerSender;
    }
    private static PropertyValueUtil propertyValueUtil;
    @Autowired
    public void setPropertyValueUtil(PropertyValueUtil propertyValueUtil) {
        MailSender.propertyValueUtil = propertyValueUtil;
    }
    @Override
    public Message sendMessage(MessageParam messageParam) {
        return null;
        //入库保存
        Message message = innerSender.sendMessage(messageParam);
        //组装邮件发送
        JavaMailSenderImpl sender = new JavaMailSenderImpl();
        sender.setHost(propertyValueUtil.getHost());
        sender.setUsername(propertyValueUtil.getUsername());
        sender.setPassword(propertyValueUtil.getAuthorizationCode());
        String[] mailUrls = messageParam.getTargetTo().split(",");
        SimpleMailMessage[] messageList = new SimpleMailMessage[mailUrls.length];
        for (int i=0;i<messageList.length;i++) {
            SimpleMailMessage messageTo = new SimpleMailMessage();
            messageTo.setFrom(messageParam.getTargetFrom());
            messageTo.setTo(mailUrls[i]);
            messageTo.setSubject(messageParam.getHead());
            messageTo.setText(message.getBody());
            messageList[i] = messageTo;
        }
        try {
            sender.send(messageList);
            logger.info("简单邮件已发送");
        }catch (Exception e){
            e.printStackTrace();
            logger.error("发送简单邮件时发生异常!", e);
            e.printStackTrace();
        }
        return message;
    }
}
ycl-platform/src/main/resources/application-dev.yml
@@ -20,6 +20,10 @@
  snow-flake:
    datacenterId: 1
    machineId: 1
mail:
  host: smtp.163.com
  username: maokecheng2015@163.com
  authorizationCode: JOMMIXUTGAJYOSNA
spring:
  redis: