gpt4 book ai didi

java - 在 IntelliJ 中创建 MimeMessage 可以工作,但卡在 .jar 中

转载 作者:行者123 更新时间:2023-11-30 01:46:56 25 4
gpt4 key购买 nike

我正在尝试使用以下代码通过 Java Mail 发送邮件:

public boolean sendMail(String recipients, String subject, String message) {
try {
System.out.println("Starting with sending..");
Properties props = new Properties();
props.put("mail.smtp.host", SMTP_HOST);
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "false");
props.put("mail.smtp.ssl.enable", "true");
System.out.println("Opening session");
Session session = Session.getDefaultInstance(props, new SocialAuth());
System.out.println("Creating Message");
session.setDebug(true);
System.out.println("Session is " + session.toString());
Message msg = new MimeMessage(session);
System.out.println("Getting InternetAddress");
InternetAddress from = new InternetAddress(FROM_ADDRESS, FROM_NAME);
System.out.println("Setting info");
msg.setFrom(from);

msg.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));

msg.setSubject(subject);
msg.setContent(message, "text/plain");
Transport transport = session.getTransport("smtp");
System.out.println("Connecting to smtp server");
transport.connect(SMTP_HOST, FROM_ADDRESS, PASSWORD); //host, 25, "myemailhere", "mypasshere");
msg.saveChanges();
System.out.println("About to transport message");
transport.sendMessage(msg, msg.getAllRecipients());
System.out.println("Mail sent");
return true;
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
return false;

} catch (MessagingException ex) {
ex.printStackTrace();
return false;
}
}

从 IntelliJ 运行时效果很好。但是,当我运行 .jar 文件时,它卡在 Message msg = new MimeMessage(session) 行。

我尝试更改 .jar 的类路径。 try catch 任何可能引发的异常,但没有。 JavaMail 调试仅返回当前版本 1.6.2,但不返回其他任何内容。我似乎无法弄清楚为什么 MimeMessage 没有被创建。

最佳答案

可能缺少 mime 或任何相关的依赖项。查看 IntelliJ 的运行选项卡,看看 jar 中是否缺少某些内容。

首先你需要知道if you created a .jar file properly

查看相关问题 here

如果生成正确,您应该执行它:

java -jar jarfile.jar

另一个有趣的点是:

So many parts of the Java ecosystem, depend on configuration files that describes how the environment should be established and it's entirely common for developers to forget to copy the configuration file alongside the JAR file.

来自here

关于java - 在 IntelliJ 中创建 MimeMessage 可以工作,但卡在 .jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57617558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com