Java的邮件发送

今天有个业务需求,执行一个定时任务,往某个特定的邮箱发送邮件。简单总结一下,利用java如何发送邮件。
1. org.springframework.mail.javamail.JavaMailSenderImpl实现类,该类实现org.springframework.mail.javamail.JavaMailSender接口,用于邮件发送端的设置。
2. java.util.Properties类,该类的底层实现为Map,用户存储邮件相关的属性设置。
3. javax.mail.internet.MimeMessage类,用于具体邮件的编辑设置。
4. org.springframework.mail.javamail.MimeMessageHelper类,辅助MimeMessage用于具体邮件的编辑。
代码如下:

public void sendMailDemo(){
    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
    //设置发送邮箱
    mailSender.setHost("mail.163.com");
    //设置邮件编码方式
    mailSender.setDefaultEncoding("UTF-8");
    //设置邮箱的用户名和密码
    mailSender.setUsername("xxx@163.com");
    mailSender.setPassword("******");
    //其它属性,利用Properties传递
    Properties prop = new Properties();
    //让发送服务器认证用户名和密码
    prop.put("mail.smtp.auth", true);
    prop.put("mail.smtp.timeout", 10000);
    mailSender.setJavaMailProperties(prop);

    //建立mailSender的具体的邮件
    MimeMessage mailMessage = mailSender.createMimeMessage();
    MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage);
    //设置邮件接收人
    messageHelper.setTo("jack@163.com");
    //设置邮件发送人
    messageHelper.setFrom("rose@163.com");
    //邮件主题
    messageHelper.setSubject("邮件发送demo");
    //设置邮件内容
    String content="hello,jack,i am rose";
    messageHelper.setText(content,true);

    //开始发送
    mailSender.send(mailMessage);
}

在上述代码中,具体邮件的设置有多种重载方法,
setTo可以接受String[]参数,发送给多个接收人。
setText源码如下:

public void setText(String text, boolean html) throws MessagingException {
        Assert.notNull(text, "Text must not be null");
        MimePart partToUse;
        if (isMultipart()) {
            partToUse = getMainPart();
        }
        else {
            partToUse = this.mimeMessage;
        }
        if (html) {
            setHtmlTextToMimePart(partToUse, text);
        }
        else {
            setPlainTextToMimePart(partToUse, text);
        }
    }

即默认不采用html格式发送邮件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值