java邮箱_JavaMail

1. 什么是JavaMail

JavaMail是提供给开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发类库,支持常用的邮件协议,如SMTP、POP3、IMAP,开发人员使用JavaMail编写邮件程序时,无需考虑底层的通信细节(Socket),JavaMail也提供了能够创建出各种复杂MIME格式的邮件内容的API。使用JavaMail,我们可以实现类似OutLook、FoxMail的软件。

2. 邮件开发的相关协议

Ø SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议(25号端口)。

Ø POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,是TCP/IP协议族中的一员(默认端口是110)。

Ø IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一

3. IMAP和POP3有什么区别?

4. POP3/IMAP、SMTP之间的区别和联系

简单地说,SMTP管“发”,POP3/IMAP管“收”。

举个例子,你坐在电脑边用mail client写完邮件,点击‘发送’。这时你的mail client会发消息给邮件服务器上的SMTP service。这时有两种情况:

1. 如果邮件的收信人也是处于同一个domain,比如从给163的邮箱,SMTP service只需要转给local的POP3 Service即可

2. 如果邮件收信人是另外的domain,比如

5. 邮件发送的过程

6.API

7.简单邮件发送

7.1pom依赖

javax.mail

mail

1.4.4

7.2发送简单邮件

import org.junit.Test;

import javax.mail.Address;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.util.Properties;

public class TestSendSimpleEmail {

@Test

public void test() throws Exception {

//设置发送者的配置信息 Properties properties = new Properties();

//发送者的协议 properties.put("mail.smtp.host","smtp.163.com");

properties.put("mail.smtp.auth","true");

Session session = Session.getInstance(properties);

//设置调试信息在控制台打印出来 session.setDebug(true);

//信息体 MimeMessage message = new MimeMessage(session);

//发信者 Address address = new InternetAddress("17630039316@163.com");

message.setFrom(address);

//收信者 Address toAddress = new InternetAddress("814962461@qq.com");

/*** 设置收件人地址(可以增加多个收件人、抄送、密送)* MimeMessage.RecipientType.TO:发送* MimeMessage.RecipientType.CC:抄送* MimeMessage.RecipientType.BCC:密送*/

message.setRecipient(MimeMessage.RecipientType.TO,toAddress);

//主题 message.setSubject("米西米西");

//正文 message.setText("哈喽啊,饭已ok啦,下来米西吧!!!");

message.saveChanges();

//发送邮件 Transport transport = session.getTransport("smtp");

//登录 transport.connect("17630039316@163.com", "QQ19971015");

transport.sendMessage(message, message.getAllRecipients());

transport.close();

}

}

7.3spring整合发送简单邮件

7.3.1applicationContext-mail.xml

xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/utilhttp://www.springframework.org/schema/util/spring-util.xsd">

${mail.from}

true

true

0

mail.host=smtp.163.com

mail.username=你的邮箱账户

mail.password=你的邮箱密码

mail.from=你的邮箱

7.3.3测试

package com.email;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.mail.MailSender;

import org.springframework.mail.SimpleMailMessage;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext-mail.xml")

public class TestSpringSendSimpleEmail {

@Autowired

private MailSender mailSender;

@Autowired

private SimpleMailMessage simpleMailMessage;

@Test

public void SingleMailSend () {

simpleMailMessage.setSubject("通知");

simpleMailMessage.setText("这是一个验证码8857");

simpleMailMessage.setTo("1518913949@qq.com");

mailSender.send(simpleMailMessage);

}

}

7.4发送带有图片的邮件

@Test

public void ImageMailSend () throws MessagingException {

JavaMailSenderImpl sender = (JavaMailSenderImpl)mailSender;

MimeMessage mailMessage = sender.createMimeMessage();

MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true);

messageHelper.setFrom("17630039316@163.com");

messageHelper.setTo("1640281429@qq.com");

messageHelper.setSubject("测试邮件中嵌套图片!!");

// true 表示启动HTML格式的邮件 messageHelper.setText(

"

hello!!spring image html mail

"

+"", true);

FileSystemResource img = new FileSystemResource(new File("d://1.png"));

messageHelper.addInline("image", img);//跟cid一致 sender.send(mailMessage);

System.out.println("邮件发送成功...");

}

7.5发送带附件的邮件

@Test

public void AttachedMailSend() throws MessagingException {

JavaMailSenderImpl sender = (JavaMailSenderImpl)mailSender;

MimeMessage mailMessage = sender.createMimeMessage();

MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,true);

messageHelper.setFrom("17630039316@163.com");

messageHelper.setTo("1640281429@qq.com");

messageHelper.setSubject("测试邮件中嵌套附件!!");

// true 表示启动HTML格式的邮件 messageHelper.setText(

"

工资已发放,详细信息请查看附件

", true);

FileSystemResource file = new FileSystemResource(new File("D://1.xlsx"));

messageHelper.addAttachment("工资.xlsx", file);//添加到附件

sender.send(mailMessage);

System.out.println("邮件发送成功...");

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值