首先需要進入你的qq郵箱中開啟POP3/SMTP服務。
1.點擊左上方設置--》賬戶
2.開啟POP3/STMP服務,開啟服務會有一個授權碼,需要保存下來,配置到代碼中。
3.引入pom依賴。
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
4.配置applicationContext.xml文件
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.qq.com"/> <property name="port" value="465"/> <property name="username" value="你的qq郵箱"/> <property name="password" value="pop3授權碼"/> <property name="defaultEncoding" value="UTF-8"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.ssl.enable">true</prop> </props> </property> </bean>
5.編寫工具類
import org.springframework.transaction.annotation.Transactional; import javax.mail.MessagingException; public interface MailSenderSrvServices { /*普通格式發送 * @recipient 收件人地址 * @subject 主題 * @content 正文 * */ @Transactional void sendEmail(String recipient,String subject,String content); /*帶抄送 * */ void sendHtmlEmail(String recipient,String subject,String content) throws MessagingException, Exception; }
import com.xcq.service.MailSenderSrvServices; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; @Service("MailSenderSrvService") public class MailSenderSrvServiceImpl implements MailSenderSrvServices { @Autowired private JavaMailSenderImpl mailSender; /** * JavaMailSenderImpl支持MimeMessages和SimpleMailMessages。 * MimeMessages為復雜郵件模板,支持文本、附件、html、圖片等。 * SimpleMailMessages實現了MimeMessageHelper,為普通郵件模板,支持文本 */ /** * 描述:Spring 依賴注入 * @author wanghaoyu * @date * @version 1.0 * @param mailSender * @since 1.8 * */ public void setMailSender(JavaMailSenderImpl mailSender) { this.mailSender = mailSender; } /** * 單發 * * @param recipient 收件人 * @param subject 主題 * @param content 內容 */ @Override public void sendEmail(String recipient,String subject,String content) { MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8"); messageHelper.setFrom("xx@qq.com");//發件人 messageHelper.setTo(recipient); messageHelper.setSubject(subject); messageHelper.setText(content,true);//true代表支持html格式 mailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } } @Override public void sendHtmlEmail(String recipient,String subject,String content) throws Exception { MimeMessage mimeMessage = mailSender.createMimeMessage(); try { MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage,true,"UTF-8"); messageHelper.setFrom("xx@qq.com");//發件人 messageHelper.setTo(recipient); messageHelper.setSubject(subject); messageHelper.setText(content,true); mimeMessage.setRecipients(Message.RecipientType.CC,"xx@qq.com");//抄送人 mailSender.send(mimeMessage); } catch (MessagingException e) { e.printStackTrace(); } } }
6.編寫測試類
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:applicationContext.xml") public class Tset{ @Autowired private MailSenderSrvServices mailsend; public static void mail(String[] args){ String to = "xxx@qq.com"; //收件人地址 String subject = "這是一封新的郵件"; //郵件標題 String content = "今天天氣不錯"; //郵件內容 mailsend.sendEmail(to,subject,content); //發送郵件 } public MailSendSrvServices getMailsend(){ return mailsend; } public void setMailsend(MailSendSrvServices mailsend){ this.mailsend = mailsend; } }
測試結果