原生方式

    1. package test;
    2. import javax.mail.*;
    3. import javax.mail.internet.AddressException;
    4. import javax.mail.internet.InternetAddress;
    5. import javax.mail.internet.MimeMessage;
    6. import java.util.Properties;
    7. public class TestSendEmail {
    8. //设计一个方法 创建一个邮件对象
    9. //参数---session
    10. //返回值---一个邮件对象(映射) MimeMessage
    11. private static Message createMessage(Session session) throws MessagingException {
    12. //自己创建一个邮件对象
    13. Message message=new MimeMessage(session);
    14. //设置邮件的基本信息
    15. //设置发送人
    16. message.setFrom(new InternetAddress("1713599635@qq.com"));
    17. //设置接收人 收件类型:收件人TO 抄送人CC 密送/暗送BCC
    18. message.setRecipient(Message.RecipientType.TO,new InternetAddress("1713599635@qq.com"));
    19. //设置邮件发送的时间 message.setSendDate(Date对象);
    20. //设置发送主题
    21. message.setSubject("这是邮件的主题");
    22. //设置发送邮件正文
    23. message.setText("我是邮件的正文");
    24. //以上所有的设置需要保存才能生效
    25. message.saveChanges();
    26. return message;
    27. }
    28. public static void main(String[] args) throws MessagingException {
    29. //1.下载一个mail.jar
    30. //2.导包
    31. //3.创建一个用于存放配置信息的对象,Properties类
    32. Properties properties=new Properties();
    33. //4.设置发送邮件需要的一些信息
    34. //设置发送邮件的协议 smtp
    35. properties.put("mail.transport.protocol","smtp");//必须
    36. //设置发送邮件的主机名
    37. properties.put("mail.smtp.host","smtp.qq.com");//必须
    38. /*
    39. 设置发送邮件的端口,默认25
    40. properties.put("mail.smtp.port","xxx");
    41. 设置发送邮件时是否需要进行身份认证
    42. properties.put("mail.smtp.auth","true");
    43. 设置是否使用ssl安全连接 默认使用
    44. properties.put("mail.smtp.ssl.enable","true");
    45. */
    46. //5.创建一个session对象(可以理解为是一个Socket,Java和邮箱之间建立一个连接)
    47. Session session=Session.getDefaultInstance(properties);
    48. //6.通过session对象获取一个Transport对象(可以理解为是一个输出流)
    49. Transport transport=session.getTransport();
    50. //7.通过邮箱发送邮件,必须得到邮件服务器的认可(使用哪个邮箱发送,授权码)
    51. transport.connect("1713599635@qq.com","qoqjjdmlyagyecfc");
    52. //8.发送一封邮件(创建一个邮件的映射关系) File对象 Class对象 映射
    53. //创建邮件对象比较复杂,需要好多信息,单独写一个方法
    54. Message message=createMessage(session);
    55. //9.发送邮件(需要一个message对象,知道message对象中的那些接收人)
    56. transport.sendMessage(message,message.getAllRecipients());
    57. //10.关闭通道
    58. transport.close();
    59. System.out.println("发送完毕");
    60. }
    61. }

    基于Spring的Email
    ApplicationContext.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xsi:schemaLocation=" http://www.springframework.org/schema/beans
    3. https://www.springframework.org/schema/beans/spring-beans.xsd"
    4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    5. xmlns="http://www.springframework.org/schema/beans">
    6. <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    7. <property name="host" value="smtp.qq.com"></property>
    8. <property name="username" value="1713599635@qq.com"></property>
    9. <property name="password" value="qoqjjdmlyagyecfc"></property>
    10. <property name="defaultEncoding" value="UTF-8"></property>
    11. <property name="javaMailProperties">
    12. <props>
    13. <prop key="mail.smtp.auth">true</prop>
    14. </props>
    15. </property>
    16. </bean>
    17. </beans>

    SpringSendEmail

    package test;
    
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.mail.javamail.JavaMailSender;
    import org.springframework.mail.javamail.MimeMessageHelper;
    
    import javax.mail.MessagingException;
    import javax.mail.internet.MimeMessage;
    
    public class SpringSendEmail {
        public static void main(String[] args) throws MessagingException {
            BeanFactory factory = new ClassPathXmlApplicationContext("ApplicationContext.xml");
            JavaMailSender sender = (JavaMailSender) factory.getBean("sender");
            //1.利用sender创建一个邮件对象
            MimeMessage message= sender.createMimeMessage();
            //2.发送邮件 找小弟帮忙
            MimeMessageHelper helper=new MimeMessageHelper(message);
            //3.需要告知helper 谁发 发给谁 发什么
            helper.setFrom("1713599635@qq.com");
            helper.setTo("1713599635@qq.com");
            helper.setSubject("邮件主题");
            helper.setText("正文内容");
            //4.直接发送
            sender.send(message);
            System.out.println("发送成功");
        }
    }