12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.fjhx.email.service.impl;
- import com.baomidou.mybatisplus.core.toolkit.IdWorker;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fjhx.email.config.exception.ServiceException;
- import com.fjhx.email.entity.PersonalFolder;
- import com.fjhx.email.entity.PersonalMailbox;
- import com.fjhx.email.entity.dto.MailboxInfo;
- import com.fjhx.email.mapper.PersonalMailboxMapper;
- import com.fjhx.email.service.IPersonalFolderService;
- import com.fjhx.email.service.IPersonalMailboxService;
- import com.fjhx.email.utils.EmailUtil;
- import com.sun.mail.imap.IMAPStore;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import javax.mail.MessagingException;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 个人邮箱 服务实现类
- * </p>
- *
- * @author zlj
- * @since 2023-04-04
- */
- @Service
- public class PersonalMailboxServiceImpl extends ServiceImpl<PersonalMailboxMapper, PersonalMailbox> implements IPersonalMailboxService {
- @Autowired
- private IPersonalFolderService personalFolderService;
- @Override
- public void add(PersonalMailbox personalMailbox) {
- Long personalMailboxId = IdWorker.getId();
- try {
- MailboxInfo mailboxInfo = new MailboxInfo();
- mailboxInfo.setReceiveHost(personalMailbox.getReceiveHost());
- mailboxInfo.setReceivePort(personalMailbox.getReceivePort());
- mailboxInfo.setMailUser(personalMailbox.getMailUser());
- mailboxInfo.setMailPassword(personalMailbox.getMailPassword());
- IMAPStore imapStore = EmailUtil.getIMAPStore(mailboxInfo);
- List<String> folderNameList = EmailUtil.getFolderNameList(imapStore);
- List<PersonalFolder> personalFolderList = folderNameList.stream().map(item -> {
- PersonalFolder personalFolder = new PersonalFolder();
- personalFolder.setMailboxId(personalMailboxId);
- personalFolder.setName(item);
- personalFolder.setSyncStatus(1);
- personalFolder.setDelFlag(0);
- return personalFolder;
- }).collect(Collectors.toList());
- personalFolderService.saveBatch(personalFolderList);
- } catch (MessagingException e) {
- throw new ServiceException("连接邮箱异常");
- }
- personalMailbox.setId(personalMailboxId);
- personalMailbox.setStatus(1);
- personalMailbox.setSyncStatus(1);
- personalMailbox.setDefaultStatus(0);
- personalMailbox.setDelFlag(0);
- this.save(personalMailbox);
- }
- }
|