使用Java邮件smtp主机

时间:2017-03-08 23:44:55

标签: java email smtp

我正在使用Linode Server中的此Java类发送电子邮件。奇怪的是,我在我的帐户nunito@gmail.com收到了电子邮件,但没有收到nunito@domainCompanynameA.com的电子邮件

          String from = "info@domainCompanynameB.com";

          // 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("info@domainCompanynameB.com");
            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());
        }
    }

}

但我遇到了同样的问题

1 个答案:

答案 0 :(得分:0)

逻辑上,如果您收到一封电子邮件,而不是您的发件人软件有问题。此问题与您的mail.smtp.host服务器或domainCompanynameA.com高度相关。

由于mail.smtp.host可以向gmail发送一些内容。我怀疑domainCompanynameA.com因各种原因阻止了您的mail.smtp.host

解决此问题的一种方法是在mail.smtp.host处将domainCompanynameA.com列入白名单。

否则需要调查以确定确切问题的来源。

我强烈建议使用第三方电子邮件api服务,因此它们受到信任和维护。