作者:Eddy 历史版本:1 最后编辑:龚清 更新时间:2024-07-30 14:34
适用版本:v3.3.6+;
dependency
<dependency>
<groupId>com.lc.ibps.components</groupId>
<artifactId>ibps-component-mail</artifactId>
</dependency>
配置说明
配置文件在application-common.yml
,参考如下:
##---------邮箱配置---------
mail:
notify-to: ${MAIL_NOTIFY_TO:}
from-address: ${MAIL_FROM_ADDRESS:}
host: ${MAIL_HOST:smtp.163.com}
mail-address: ${MAIL_ADDRESS:}
username: ${MAIL_USERNAME:}
password: ${MAIL_PASSWORD:}
## 端口号 如果启用 163用465/994
port: ${MAIL_PORT:465}
default-encoding: utf-8
## 尝试使用AUTH命令认证用户
smtp:
auth: true
ssl:
enable: true
starttls:
enable: false
## 服务协议
transport:
protocol: ${MAIL_TRANSPORT_PROTOCOL:smtps}
API说明
MailUtil
// 连接Smtp和接收器 public void connectSmtpAndReceiver() // 发送邮件 public void send(Mail mail) // 接收邮件 public List<Mail> receive(AttacheHandler handler) public List<Mail> receive(AttacheHandler handler, String lastHandleMessageId) // 根据messageID获取邮件 public Mail getByMessageID(AttacheHandler handler, String messageID)
使用示例
public class MailUtilTest {
@Test
public void receive() throws Exception{
MailSetting setting = getMailSettingEntity();
MailUtil mailUtil = new MailUtil(setting);
final List<String> finalList = new ArrayList<String>();
String latestEmailId = "";
List<Mail> list = mailUtil.receive(new AttacheHandler() {
@Override
public Boolean isDownlad(String UID) {
return !finalList.contains(UID);
}
@Override
public void handle(Part part, Mail mail) {
try {
//TODO
} catch (Exception e) {
e.printStackTrace();
}
}
}, latestEmailId);
System.out.println(list);
}
private MailSetting getMailSettingEntity() {
MailSetting setting = new MailSetting();
setting.setMailAddress("test@163.com");
setting.setPassword("1234567");
setting.setProtocal(MailProtocol.POP3.getName());
setting.setReceiveHost("pop.163.com");
setting.setReceivePort("110");
return setting;
}
}