diff --git a/gan-common/ruoyi-common-core/pom.xml b/gan-common/ruoyi-common-core/pom.xml index 81d27bb..3db0804 100644 --- a/gan-common/ruoyi-common-core/pom.xml +++ b/gan-common/ruoyi-common-core/pom.xml @@ -113,10 +113,6 @@ swagger-annotations - - javax.mail - mail - diff --git a/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/ALiYunMailUtil.java b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/ALiYunMailUtil.java index 5a62284..d1bf348 100644 --- a/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/ALiYunMailUtil.java +++ b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/ALiYunMailUtil.java @@ -1,5 +1,8 @@ package com.ruoyi.common.core.utils.mail; + +import com.ruoyi.common.core.utils.StringUtils; + import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; @@ -16,8 +19,7 @@ import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; - -import org.apache.commons.lang3.StringUtils; + public class ALiYunMailUtil { diff --git a/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/AliMailUtil.java b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/AliMailUtil.java new file mode 100644 index 0000000..928ce71 --- /dev/null +++ b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/AliMailUtil.java @@ -0,0 +1,100 @@ +package com.ruoyi.common.core.utils.mail; + + + +import org.apache.commons.lang3.StringUtils; + +import java.util.Properties; +import javax.activation.DataHandler; +import javax.activation.FileDataSource; +import javax.mail.Authenticator; +import javax.mail.BodyPart; +import javax.mail.Message; +import javax.mail.Multipart; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeBodyPart; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeMultipart; +import javax.mail.internet.MimeUtility; + +public class AliMailUtil { + + private static final String SEND_ADDRESS = "mail@gbgobig.com"; + private static final String SEND_PASSWORD = "ganbeigobig@2024"; + private static final String HOST = "smtp.qiye.aliyun.com"; + private static final String PORT = "25"; // 或80 + private static final String SUBJECT = "Email verification code"; + private static final String FILE_PATH = null; + private static final String CC = null; + + /** + * @param content 邮件内容 + * @param internetAddress 收件人地址 + * @throws Exception + * @throws AddressException + */ + public static void sendMail(String content, String internetAddress) throws AddressException, Exception { + // 设置SSL连接、邮件环境 + // Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); + // final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; + Properties props = System.getProperties(); + props.setProperty("mail.smtp.host", HOST); + // props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); + props.setProperty("mail.smtp.socketFactory.fallback", "false"); + props.setProperty("mail.smtp.port", PORT); // 设置端口 + props.setProperty("mail.debug", "true"); // 启用调试 + props.setProperty("mail.smtp.socketFactory.port", "465"); + props.setProperty("mail.smtp.auth", "true"); + + // 建立邮件会话 + Session session = Session.getDefaultInstance(props, new Authenticator() { // 身份认证 + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(SEND_ADDRESS, SEND_PASSWORD); // 发件人账号、密码 + } + }); + + // 建立邮件对象 + MimeMessage message = new MimeMessage(session); + + // 设置邮件的发件人、收件人、主题 + message.setFrom(new InternetAddress(SEND_ADDRESS)); // 发件人账号 + message.setRecipients(Message.RecipientType.TO, internetAddress); // 收件人账号 + + // 标题 + message.setSubject(SUBJECT); // 邮件标题 + + // 内容 + Multipart multipart = new MimeMultipart(); + BodyPart contentPart = new MimeBodyPart(); + // 将内容包装在HTML样式标签中,调整字体粗细 + String styledContent = "

" + + content + + "

"; + contentPart.setContent(styledContent, "text/html;charset=utf-8"); // 邮件内容 + multipart.addBodyPart(contentPart); + + // 附件部分 + if (StringUtils.isNotBlank(FILE_PATH)) { + BodyPart attachPart = new MimeBodyPart(); + FileDataSource fileDataSource = new FileDataSource(FILE_PATH); // 附件地址 D:/题库上传模板v1.xlsx + attachPart.setDataHandler(new DataHandler(fileDataSource)); + attachPart.setFileName(MimeUtility.encodeText(fileDataSource.getName())); + multipart.addBodyPart(attachPart); + } + + message.setContent(multipart); + + // 抄送地址 + if (StringUtils.isNotBlank(CC)) { + InternetAddress[] internetAddressCC = new InternetAddress().parse(CC); + message.setRecipients(Message.RecipientType.CC, internetAddressCC); + } + + // 发送邮件 + Transport.send(message); + } +} \ No newline at end of file diff --git a/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/EmailService.java b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/EmailService.java new file mode 100644 index 0000000..7e0623a --- /dev/null +++ b/gan-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/mail/EmailService.java @@ -0,0 +1,4 @@ +package com.ruoyi.common.core.utils.mail; + +public class EmailService { +} diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java index 7c3e87a..4054099 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/AppRegisterServiceImpl.java @@ -14,6 +14,7 @@ import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.utils.mail.ALiYunMailUtil; +import com.ruoyi.common.core.utils.mail.AliMailUtil; import com.ruoyi.common.core.utils.mail.MailUtil; import com.ruoyi.common.core.utils.uuid.IdUtils; import org.apache.http.HttpResponse; @@ -230,7 +231,7 @@ public class AppRegisterServiceImpl implements IAppRegisterService { + "

http://127.0.0.1:9204/app/activation/" + token + "/" + email + "

" + ""; try { - ALiYunMailUtil.sendMail(EM, email); + AliMailUtil.sendMail(EM, email); } catch (MessagingException e) { throw new RuntimeException(e); } catch (Exception e) { diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java index dd61582..1e61b61 100644 --- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java +++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/utils/AlipayConstant.java @@ -22,11 +22,14 @@ public class AlipayConstant { public static final String SUBJECT = "订单充值"; - public static final String CERT_PATH = "/opt/jar/gan/cert/appCertPublicKey_2021004144677656.crt"; +// public static final String CERT_PATH = "/opt/jar/gan/cert/appCertPublicKey_2021004144677656.crt"; + public static final String CERT_PATH = "/Users/wyh/Documents/证书20240524173546/appCertPublicKey_2021004144677656.crt"; - public static final String ALIPAY_PUBLIC_CERT_PATH = "/opt/jar/gan/cert/alipayCertPublicKey_RSA2.crt"; +// public static final String ALIPAY_PUBLIC_CERT_PATH = "/opt/jar/gan/cert/alipayCertPublicKey_RSA2.crt"; + public static final String ALIPAY_PUBLIC_CERT_PATH = "/Users/wyh/Documents/证书20240524173546/alipayCertPublicKey_RSA2.crt"; - public static final String ROOT_CERT_PATH = "/opt/jar/gan/cert/alipayRootCert.crt"; +// public static final String ROOT_CERT_PATH = "/opt/jar/gan/cert/alipayRootCert.crt"; + public static final String ROOT_CERT_PATH = "/Users/wyh/Documents/证书20240524173546/alipayRootCert.crt"; diff --git a/gan-ui/src/views/app/user/index.vue b/gan-ui/src/views/app/user/index.vue index 165b1e4..b00e64e 100644 --- a/gan-ui/src/views/app/user/index.vue +++ b/gan-ui/src/views/app/user/index.vue @@ -106,7 +106,7 @@ @@ -119,58 +119,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -