:::info qq邮箱 ::: IMAPSMTP服务 .pngPOP3SMTP服务.png :::info javamail库依赖 :::

    1. <dependency>
    2. <groupId>javax.mail</groupId>
    3. <artifactId>mail</artifactId>
    4. <version>1.4</version>
    5. </dependency>
    1. import java.security.Security;
    2. import java.util.Properties;
    3. import javax.mail.Authenticator;
    4. import javax.mail.Message;
    5. import javax.mail.PasswordAuthentication;
    6. import javax.mail.Session;
    7. import javax.mail.Transport;
    8. import javax.mail.internet.InternetAddress;
    9. import javax.mail.internet.MimeMessage;
    10. public class MailClient {
    11. public static void main(String[] args) {
    12. try {
    13. final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
    14. //配置邮箱信息
    15. Properties props = System.getProperties();
    16. //邮件服务器
    17. props.setProperty("mail.smtp.host", "smtp.qq.com");//域名会随邮箱类型而变
    18. props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
    19. props.setProperty("mail.smtp.socketFactory.fallback", "false");
    20. //邮件服务器端口
    21. props.setProperty("mail.smtp.port", "465");
    22. props.setProperty("mail.smtp.socketFactory.port", "465");
    23. //鉴权信息
    24. props.setProperty("mail.smtp.auth", "true");
    25. //建立邮件会话
    26. Session session = Session.getDefaultInstance(props, new Authenticator() {
    27. //身份认证
    28. protected PasswordAuthentication getPasswordAuthentication() {
    29. //1.账户 授权码
    30. return new PasswordAuthentication("xxxxxxx@qq.com", "xxxx");
    31. }
    32. });
    33. //建立邮件对象
    34. MimeMessage message = new MimeMessage(session);
    35. //设置邮件的发件人
    36. message.setFrom(new InternetAddress("xxxxxxx@qq.com"));
    37. //2.设置邮件的收件人
    38. message.setRecipients(Message.RecipientType.TO, "xxxxxxx@qq.com");
    39. //设置邮件的主题
    40. message.setSubject("通过javamail发出!!!");
    41. //文本部分
    42. message.setContent("文本邮件测试", "text/html;charset=UTF-8");
    43. message.saveChanges();
    44. //发送邮件
    45. Transport.send(message);
    46. } catch (Exception e) {
    47. e.printStackTrace();
    48. }
    49. }
    50. }