2017-03-08 41 views
-1

我從Linode服務器使用這個Java類發送一封電子郵件。好奇的事情是,我收到的電子郵件在我的帳戶[email protected]但不是在[email protected]用Java郵件smtp主機

  String from = "[email protected]"; 

      // Assuming you are sending email from localhost 
      String host = "localhost"; 

      // Get system properties 
      Properties properties = System.getProperties(); 

      // Setup mail server 
      properties.setProperty("mail.smtp.host", host); 

      // Get the default Session object. 
      Session session = Session.getDefaultInstance(properties); 

      try{ 
      // Create a default MimeMessage object. 
      MimeMessage message = new MimeMessage(session); 

      // Set From: header field of the header. 
      message.setFrom(new InternetAddress(from)); 

      // Set To: header field of the header. 
      message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); 

      // Set Subject: header field 
      message.setSubject("Alert from LINODE"); 

      // Now set the actual message 
      message.setText(msg); 

      // Send message 
      Transport.send(message); 

      System.out.println("Sent message successfully...."); 

      }catch (MessagingException mex) { 
      mex.printStackTrace(); 
      } 

我把它改成

public class MailClient { 

    protected static final Logger looger = LoggerFactory.getLogger(MailClient.class); 

    @Autowired 
    private JavaMailSender mailSender; 

    private MailContentBuilder mailContentBuilder; 

    @Autowired 
    public MailClient(JavaMailSender mailSender, MailContentBuilder mailContentBuilder) { 
     this.mailSender = mailSender; 
     this.mailContentBuilder = mailContentBuilder; 
    } 

    //TODO: in a properties 
    public void prepareAndSend(String recipient, String message) { 
     MimeMessagePreparator messagePreparator = mimeMessage -> { 
      MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage); 
      messageHelper.setFrom("[email protected]"); 
      messageHelper.setTo(recipient); 
      messageHelper.setSubject("Sample mail subject"); 
      String content = mailContentBuilder.build(message); 
      messageHelper.setText(content, true); 
     }; 
     try { 
      if (looger.isDebugEnabled()) { 
       looger.debug("sending email to " + recipient); 
      } 
      mailSender.send(messagePreparator); 
     } catch (MailException e) { 
      looger.error(e.getMessage()); 
     } 
    } 

} 

但我得到了同樣的問題

+0

這是爲什麼好奇? – azurefrog

回答

0

從邏輯上講,如果您收到一封電子郵件,而不是發送方軟件有問題。此問題與您的mail.smtp.host服務器或domainCompanynameA.com高度相關。因爲mail.smtp.host可以發送一些東西到gmail。我懷疑domainCompanynameA.com因各種原因阻止了你的mail.smtp.host

解決此問題的一種方法是將您的mail.smtp.host白名單列爲domainCompanynameA.com

否則需要調查以確定確切問題的來源。

我強烈建議使用第三方電子郵件API服務,因此他們是信任和維護。

相關問題