JAVA实现.126邮箱发送
126邮箱服务器地址:
- POP3:pop.126.com
 - SMTP:smtp.126.com
 - IMAP:imap.126.com
 
端口:
- POP3:110
 - POP3 SSL:995
 - IMAP:143
 - IMAP SSL: 993
 - SMTP:25
 - SMTP SSL:465
 - SMTP TLS:587
 
首先开启POP3/SMTP/IMAP

 
 !!!根据操作你会获得一个授权码,授权码保存下来等会要用到!!!
1.搭建SpringBoot 添加依赖
         <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
 
2.在配置文件中添加邮箱基本配置我这里用的是.properties
#邮箱
#配置 smtp 服务器地址
spring.mail.host=smtp.126.com
# smtp 服务器的端口25/ssl 465
spring.mail.port=25
# 配置邮箱用户名
spring.mail.username=你要发送短信的邮箱账号
# 配置申请到的授权码
spring.mail.password=刚才获取到了授权码
# 配置邮件编码
spring.mail.default-encoding=UTF-8
# 配饰 SSL 加密工厂
spring.mail.properties.mail.smtp.socketFactory.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
# 表示开启 DEBUG 模式
spring.mail.properties.mail.debug=true
 
简单邮箱发送示例代码:
@SpringBootTest
class SendqqemailApplicationTests {
	@Autowired
    JavaMailSender javaMailSender;
    
     /**
     *  发送简单邮件
     */
    @Test
    public void sendSimpleMail() {
        SimpleMailMessage msg = new SimpleMailMessage();    //构建一个邮件对象
        msg.setSubject("这是一封测试邮件"); // 设置邮件主题
        msg.setFrom("和配置文件中保持一致邮箱"); // 设置邮箱发送者
        msg.setTo("接受者邮箱"); // 设置邮件接收者,可以有多个接收者
        msg.setSentDate(new Date());    // 设置邮件发送日期
        msg.setText("这是测试邮件的正文");   // 设置邮件的正文
        javaMailSender.send(msg);
    }
}
 

附件邮箱发送示例代码:
@Component
@Slf4j
public class SendEmail {
    @Autowired
    private JavaMailSender javaMailSender;
    public  void sendEmail(JSONObject object) throws MessagingException {
        log.info("===============>开始发送邮件===============");
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //解决附件名太长会被截取掉或者中文乱码问题
        System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true,"utf-8");
        // 设置邮件主题
        helper.setSubject(object.getString("subject"));
        // 设置邮箱发送者
        helper.setFrom(object.getString("from"));
        // 设置邮件接收者,可以有多个接收者
        helper.setTo(object.getString("to"));
        // 设置邮件发送日期
        helper.setSentDate(new Date());
        // 设置邮件的正文
        helper.setText(object.getString("text"));
        //附件名称,附件文件
        File file=new File(object.getString("fileUrl"));
        String fileName=file.getName();
        helper.addAttachment(fileName,file);
        javaMailSender.send(mimeMessage);
        log.info("===============>发送邮件结束===============");
    }
 

 这样一个126的邮箱发送就基本完成了
注意:
如果你当前的项目部署在了阿里云申请的服务器上,你会发现邮箱发送失败,会出现端口被占错误出现,是因为
 阿里云服务器默认禁用25端口
解决办法:
将邮箱发送换成SSL形式,更换端口
1.更改配置文件,其他内容不变,更换SSL端口
# smtp 服务器的端口25/ssl 465
spring.mail.port=465
 
2.添加SSL配置
#ssl
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
 
这样服务器端口被占问题就解决了,










