为什么我的电子邮件实现使用本地用户而不是指定的smtp用户?

时间:2016-07-08 15:37:18

标签: java email

我正在调试过去工作的电子邮件实现,并决定排除smtp服务器问题。我找到了关于在gmail上实现Insert Picture的{​​{3}}教程。

我在某种程度上根据我的需要进行了调整,但应用程序使用我的本地计算机用户和主机而不是代码中的给定。

java mail

控制台错误是:

static Properties mailServerProperties;
static Session getMailSession;
static MimeMessage generateMailMessage;

public static void main(String args[]) throws AddressException, MessagingException {
    generateAndSendEmail();
    System.out.println("\n\n ===> Your Java Program has just sent an Email successfully. Check your email..");
}

public static void generateAndSendEmail() throws AddressException, MessagingException {

    // Step1
    System.out.println("\n 1st ===> setup Mail Server Properties..");
    mailServerProperties = System.getProperties();
    mailServerProperties.put("mail.smtp.port", "587");
    System.out.println("Mail Server Properties have been setup successfully..");

    // Step2
    System.out.println("\n\n 2nd ===> get Mail Session..");
    getMailSession = Session.getDefaultInstance(mailServerProperties, null);
    generateMailMessage = new MimeMessage(getMailSession);
    generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("destination@email.com"));
    generateMailMessage.setSubject("Greetings");
    String emailBody = "Test email";
    generateMailMessage.setContent(emailBody, "text/html");
    System.out.println("Mail Session has been created successfully..");

    // Step3
    System.out.println("\n\n 3rd ===> Get Session and Send mail");
    Transport transport = getMailSession.getTransport("smtp");

    // Enter your correct UserID and Password
    // if you have 2FA enabled then provide App Specific Password
    transport.connect("smtp.server.com", 587, "sender@email.com", "password");

    transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());

    transport.close();
}

如何解决?

0 个答案:

没有答案