java通过springMail发送邮件
1,首先在spring配置文件中加入邮件发送配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="protocol" value="${mail.protocol}"/> <property name="host" value="${mail.host}"/> <property name="port" value="${mail.port}" /> <property name="username" value="${mail.username}"/> <property name="password" value="${mail.password}"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.starttls.enable">true</prop> </props> </property> </bean>
2,配置中的参数可以写在properties配置文件中
mail.protocol=smtp mail.from=*@*.com mail.host=smtp.*.com mail.port=25 mail.username= mail.password=
3,java中的代码
首先可以定义一个通用的邮件bean
import java.io.Serializable; import org.springframework.web.multipart.MultipartFile; public class Email implements Serializable { private static final long serialVersionUID = 1L; /** 发件人 **/ private String sender; /** 收件人* */ private String[] address; /** 抄送给* */ private String[] cc; /** 暗送给* */ private String[] bcc; /** 回复给* */ private String replyTo; /** 邮件主题* */ private String subject;/** 邮件内容*/ private String content; /** 附件* */ private MultipartFile[] attachment = new MultipartFile[0]; //////////////////////////getters & setters//////////////////////////////
}
发送代码
@Resource(name = "mailSender") private JavaMailSender mailSender; public void sendMailBySynchronizationMode(Email email) { MimeMessage mime = mailSender.createMimeMessage(); MimeMessageHelper helper; String content = email.getContent(); try { helper = new MimeMessageHelper(mime, true, "utf-8"); helper.setFrom(email.getSender());//发件人 helper.setTo(email.getAddress());//收件人 if (CommonUtils.isNotEmpty(email.getCc())) { helper.setCc(email.getCc());// 抄送 } if (CommonUtils.isNotEmpty(email.getBcc())) { helper.setBcc(email.getBcc());// 暗送 } if (CommonUtils.isNotEmpty(email.getReplyTo())) { helper.setReplyTo(email.getReplyTo());// 回复到 } helper.setSubject(email.getSubject());//邮件主题 helper.setText(content, true);//true表示设定html格式 //处理附件 for (MultipartFile file : email.getAttachment()) { if (file == null || file.isEmpty()) { continue; } String fileName = file.getOriginalFilename(); try { fileName = new String(fileName.getBytes("utf-8"), "ISO-8859-1"); } catch (Exception e) { } helper.addAttachment(fileName, new ByteArrayResource(file.getBytes())); } mailSender.send(mime); } catch (Exception e) { e.printStackTrace(); } }