JAVA发送阿里云SSL邮件(先吐槽一波163)

最近做一个发送邮件的功能,以前做过但年代太久代码也找不到了。而且也不想搭邮件服务器于是考虑用163的测试一下。弄一天恶心 554 DT:SPM这个异常看吐了,看了下官方的文档大概是说主题或者内容里面有些关键字不合法。百度了一下一大堆各种各样的解决方法试几个都没用。有的说网易就是故意不让你发的时好时坏。果断弃,准备自己弄邮件服务器的时候想起阿里免费的企业邮箱,弄了个一会就测通了。网易邮箱还亏这么多人用还是阿里靠谱。

package com.ssm.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;

public class SendTest {

    public static void main(String[] args) {
       
        try {
            sendMail("xxx@syin.xyz","*****","asddfas1","laji..");
        }catch (Exception me)
        {
            me.printStackTrace();
        }
    }

    public static void sendMail(String emailName,String emailPassword,String title, String centent) throws Exception {
        Properties properties = new Properties();// 创建Properties对象
        properties.setProperty("mail.transport.protocol", "smtp");// 设置传输协议
        properties.put("mail.smtp.host", "smtp.syin.xyz");
        properties.put("mail.debug", "true");//便于调试
        properties.put("mail.smtp.socketFactory.port", "465");
        properties.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
        properties.put("mail.smtp.auth", "true");
        properties.put("mail.smtp.port", "465");

        final String em = emailName;
        final String ep = emailPassword;
        Authenticator auth = new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(em,
                        ep);
            }
        };// 使用验证,创建一个Authenticator
        Session session = Session.getDefaultInstance(properties, auth);// 根据Properties,Authenticator创建Session
        session.setDebug(true);
        Message message = new MimeMessage(session);// Message存储发送的电子邮件信息
        message.setFrom(new InternetAddress("xxx@syin.xyz"));
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(
                "xxxx@163.com"));// 设置收信邮箱
        // 指定邮箱内容及ContentType和编码方式
        message.setContent(centent, "text/html;charset=utf-8");
        message.setSubject(title);// 设置主题
        message.setSentDate(new Date());// 设置发信时间
        Transport.send(message);// 发送
    }
}

域名是自己绑定到企业邮箱上的。SSL和普通25端口的区别就是引入SSLSocketFactory和配置好SSL对应的465端口。

参考:https://www.cnblogs.com/qingwen/p/5513090.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值