2017-03-08 1 views
-1

Linode 서버에서이 Java 클래스를 사용하여 전자 메일을 보내고 있습니다. 호기심 것은 내가mail smtp host with Java

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()); 
     } 
    } 

} 

로 변경했습니다하지만 같은 가지고

  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(); 
      } 

내 계정 [email protected]에 있지만 [email protected]의 이메일을받을 것입니다 문제

+0

왜 그렇게 궁금하십니까? – azurefrog

답변

0

하나의 이메일을받는다면 논리적으로 문제가있는 발신자 소프트웨어가 아닌 것입니다. 이 문제는 mail.smtp.host 서버 또는 domainCompanynameA.com과 관련이 있습니다.

mail.smtp.hostgmail에 어떤 것을 보낼 수 있습니다. domainCompanynameA.com님께 서 다양한 이유로 mail.smtp.host을 차단했다고 생각됩니다.

해결 방법 중 하나는 mail.smtp.hostdomainCompanynameA.com에 흰색으로 나열하는 것입니다.

아니면 정확한 문제가 어디에서 발생하는지 조사해야합니다.

3 부 이메일 API 서비스를 사용하는 것이 좋습니다. 따라서 신뢰할 수 있고 유지 관리됩니다.