Class EmailMessageSendService

java.lang.Object
com.bytedesk.core.email_message.EmailMessageSendService

@Service public class EmailMessageSendService extends Object
邮件发送服务 提供邮件发送功能,支持HTML、文本、附件等
  • Field Details

  • Constructor Details

    • EmailMessageSendService

      public EmailMessageSendService()
  • Method Details

    • sendEmail

      public EmailMessageResponse sendEmail(EmailMessageRequest request)
      发送邮件
      Parameters:
      request - 邮件发送请求
      Returns:
      发送结果
    • validateSendRequest

      private void validateSendRequest(EmailMessageRequest request)
      验证发送请求参数
    • validateEmailAddressesString

      private void validateEmailAddressesString(String addresses, String type)
      验证邮件地址格式(String类型,逗号分隔)
    • isValidEmail

      private boolean isValidEmail(String email)
      简单的邮件地址验证
    • getEmailConfig

      private EmailEntity getEmailConfig(String emailConfigUid)
      获取邮件配置
    • createMailSender

      private org.springframework.mail.javamail.JavaMailSender createMailSender(EmailEntity emailConfig)
      创建JavaMailSender
    • createMimeMessage

      private jakarta.mail.internet.MimeMessage createMimeMessage(org.springframework.mail.javamail.JavaMailSender mailSender, EmailEntity emailConfig, EmailMessageRequest request) throws jakarta.mail.MessagingException, UnsupportedEncodingException
      创建邮件消息
      Throws:
      jakarta.mail.MessagingException
      UnsupportedEncodingException
    • addAttachments

      private void addAttachments(org.springframework.mail.javamail.MimeMessageHelper helper, String attachments) throws jakarta.mail.MessagingException
      添加附件
      Throws:
      jakarta.mail.MessagingException
    • getTotalRecipientCount

      private int getTotalRecipientCount(EmailMessageRequest request)
      计算总收件人数量
    • saveEmailRecord

      private void saveEmailRecord(EmailEntity emailConfig, EmailMessageRequest request, String sendId, EmailMessageStatusEnum status, String description, String errorMessage, boolean isRead)
      保存邮件记录
      Parameters:
      emailConfig - 邮件配置
      request - 邮件请求
      sendId - 发送ID
      status - 邮件状态
      description - 描述信息
      errorMessage - 错误信息(可选)
      isRead - 是否已读
    • savePendingEmailRecord

      private void savePendingEmailRecord(EmailEntity emailConfig, EmailMessageRequest request, String sendId)
      保存待发送的邮件记录
    • saveSentEmailRecord

      private void saveSentEmailRecord(EmailEntity emailConfig, EmailMessageRequest request, String sendId, boolean success, String errorMessage)
      保存发送的邮件记录
    • testSmtpConnection

      public boolean testSmtpConnection(String emailConfigUid)
      测试邮件配置的SMTP连接
      Parameters:
      emailConfigUid - 邮件配置UID
      Returns:
      测试结果
    • sendTestEmail

      public EmailMessageResponse sendTestEmail(String emailConfigUid, String testEmail)
      发送测试邮件
      Parameters:
      emailConfigUid - 邮件配置UID
      testEmail - 测试邮件地址
      Returns:
      发送结果