我是java新手,
我正在尝试从我的java类发送电子邮件,我在Windows中尝试了代码,它最初有一些问题。将mail-1.4.jar放入vis-timeline-graph2d.min.js
后,它运行正常。
我刚将其移至我的服务器(AWS),将此java文件放在一个文件夹中并尝试运行此类。我将mail-1.4.jar放在路径C:\Program Files\Java\jdk1.8.0_91\jre\lib\ext
我的java课程:
/opt/jdk1.7.0_79/jre/lib/ext
在执行import java.io.IOException;
import java.net.URISyntaxException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class Mail {
public static void main(String[] args) throws IOException,
URISyntaxException, AddressException, MessagingException {
String BODY = "\n\n Regards Admin.";
String SUBJECT = "SUBJECT";
String TO = "fg@gddgh.com";
final String FROM = "no-reply@dfh.com";
final String SMTP_USERNAME = "SMTP_USERNAME";
final String SMTP_PASSWORD = "SMTP_PASSWORD";
final String HOST = "email-smtp.us-west-2.amazonaws.com";
String message = "Email successfully sent";
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.port", 25);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.starttls.required", "true");
Session session = Session.getDefaultInstance(props);
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(FROM));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(TO));
msg.setSubject(SUBJECT);
msg.setContent(BODY, "text/plain");
Transport transport = session.getTransport();
try {
transport.connect(HOST, SMTP_USERNAME, SMTP_PASSWORD);
transport.sendMessage(msg, msg.getAllRecipients());
System.out.println(message);
} catch (Exception ex) {
message = "Email not sent to the given ID";
System.out.println(message);
} finally {
transport.close();
}
}
}
命令时编译良好,但无法运行此类。执行javac Mail.java
java Mail
答案 0 :(得分:0)
您已在本地环境中做得很好:您已将JavaMail安装到JDK扩展目录(jre/lib/ext
)中。因此,您必须将其保存到AWS环境中的同一目录。
并非所有jre/lib
目录中的库都是系统加载的,但jre/lib/ext
中的库是。
JRE由图中突出显示的框内的那些目录组成。无论您的JRE是独立的还是JDK软件的一部分,JRE目录的lib / ext中的任何JAR文件都会被运行时环境自动视为扩展。
答案 1 :(得分:0)
看来你没有把jar包含在openJdk中。
尝试将jar添加到openJdk pathToOpenJdk/jre/lib/ext
文件夹中。它应该有用。
希望这有帮助。