java实现发送邮件

java实现发送邮件helper setSubject PLM 集成提醒 subject mail subject XXX 系统邮件通知 paramcontnet 内容

大家好,欢迎来到IT知识分享网。

邮件的配置类:

import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "mail") public class MailProperties { private String from; private String pwd; private String host; private String subject; private String port; public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getPort() { return port; } public void setPort(String port) { this.port = port; } }

配置参数:


service代码:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;

import javax.mail.*;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;

/
* 邮件服务接口实现类 Uinfor 
*
* @author 
*/
@Service
public class MailServiceImpl implements MailService {

@Autowired
private MailProperties mailProperties;
private static Logger logger = LoggerFactory.getLogger(MailServiceImpl.class);

@Value("${mail.onOff}")
private boolean onOff;

@Override
public void SendSimpleMail(String to, String subject, String text) {
if (!onOff) {return ;}
try {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom(mailProperties.getFrom());
mailMessage.setTo(to);
mailMessage.setSubject(subject);
mailMessage.setText(text);

JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
senderImpl.setUsername(mailProperties.getFrom());
senderImpl.setPassword(mailProperties.getPwd());
senderImpl.setHost(mailProperties.getHost());
senderImpl.setPort(Integer.valueOf(mailProperties.getPort()));
senderImpl.send(mailMessage);

if (mailProperties.getPwd() == null || mailProperties.getPwd().length() == 0) {
sendEmail(mailProperties.getSubject() + subject, to.split(";"), null, text, null, true);
} else {
sendEmail(mailProperties.getSubject() + subject, to.split(";"), null, text, null, false);
}
} catch (Exception e) {
logger.error("SendSimpleMail error: {}", e.getMessage());
}
}

@Override
public void SendTcMail() {

}

@Override
public void sendHtmlMail(String to, String[] ccs, String subject, String html) {
logger.info("sendMail to := " + to + "-->subject := " + subject);
logger.info("sendMail to := " + to + "-->html := " + html);
if (mailProperties.getPwd() == null || mailProperties.getPwd().length() == 0) {
sendEmail(mailProperties.getSubject() + subject, to.split(";"), ccs, html, null, true);
} else {
sendEmail(mailProperties.getSubject() + subject, to.split(";"), ccs, html, null, false);
}
}

public void sendEmail(String subject, String[] tos, String[] ccs, String content, File[] attachments,
boolean isAnonymousEmail) {
if (subject == null || subject.length() == 0) {
subject = "Auto-generated subject";
}
if (tos == null || tos.length == 0) {
throw new IllegalArgumentException("At lease 1 receive address is required.");
}
if (content == null && (attachments == null || attachments.length == 0)) {
throw new IllegalArgumentException("Content and attachments cannot be empty at the same time");
}
logger.info("sendMail to := " + tos[0] + "-->subject := " + subject);
logger.info("sendMail to := " + tos[0] + "-->content := " + content);
if (attachments != null && attachments.length > 0) {
List<File> invalidAttachments = new ArrayList<>();
for (File attachment : attachments) {
if (!attachment.exists() || attachment.isDirectory() || !attachment.canRead()) {
invalidAttachments.add(attachment);
}
}
if (invalidAttachments.size() > 0) {
String msg = "";
for (File attachment : invalidAttachments) {
msg += "\n\t" + attachment.getAbsolutePath();
}
logger.error("sendMail error message := ", msg);
//throw new IllegalArgumentException("The following attachments are invalid:" + msg);
}
}
Session session;
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");

if (isAnonymousEmail) {
// only anonymous email needs param smtpHost
props.put("mail.smtp.host", mailProperties.getHost());
props.put("mail.smtp.port", mailProperties.getPort());
props.put("mail.smtp.auth", "false");
session = Session.getInstance(props, null);
} else {
// normal email does not need param smtpHost and
// uses the default host SMTPServer
props.put("mail.smtp.host", mailProperties.getHost());
props.put("mail.smtp.port", mailProperties.getPort());
props.put("mail.smtp.auth", "true");
session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mailProperties.getFrom(), mailProperties.getPwd());
}
});
}
try {
MimeMessage message = new MimeMessage(session);
InternetAddress fromAddress = new InternetAddress(mailProperties.getFrom());
message.setFrom(fromAddress);
for (String to : tos) {
System.out.println("to := " + to);
if (to != null && to.length() > 0 && to.contains("@")) {
message.addRecipient(RecipientType.TO, new InternetAddress(to));
}
}
if (ccs != null) {
for (String cc : ccs) {
System.out.println("cc := " + cc);
if (cc != null && cc.length() > 0 && cc.contains("@")) {
message.addRecipient(RecipientType.CC, new InternetAddress(cc));
}
}
}
message.setSubject(subject);
message.setContent(content, "text/html;charset=gb2312");

message.setSentDate(new Date());

message.saveChanges();

Transport.send(message);

} catch (Exception e) {
e.printStackTrace();
logger.error("", e);
}
}
/
* HTML 文本邮件
*
* @param to 接收者邮件
* @param cc 抄送
* @param subject 邮件主题
* @param contnet HTML内容
* @throws MessagingException
*/
// public void sendHtmlMail(String to, String[] cc, String subject, String contnet) {
// JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();
// senderImpl.setUsername(mailProperties.getFrom());
// senderImpl.setPassword(mailProperties.getPwd());
// senderImpl.setHost(mailProperties.getHost());
// MimeMessage message = senderImpl.createMimeMessage();
// try {
// MimeMessageHelper helper = new MimeMessageHelper(message, true);
// helper.setTo(to);
// helper.setSubject("PLM集成提醒:" + subject);
// helper.setText(contnet, true);
// helper.setFrom(mailProperties.getFrom());
// if(cc != null && cc.length > 0) {
// helper.setCc(cc);
// }
// senderImpl.send(message);
// }catch(Exception e) {
// e.printStackTrace();
// }
//
//
 senderImpl.setPort(mailProperties.getPort());
//
// }
}

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/111904.html

(0)
上一篇 2026-01-22 08:20
下一篇 2026-01-22 08:34

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信