gpt4 book ai didi

java - 无法使用 gmail-smtp 和 javamail 发送电子邮件?

转载 作者:行者123 更新时间:2023-12-01 12:08:18 24 4
gpt4 key购买 nike

我正在使用Javamail将电子邮件从我的gmail发送给其他人,但系统无法发送它。它一直说无法加载主类。

我得到的代码是演示代码,所以我认为这不是问题。不管怎样,我把它发布在这里。

package Email;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMailTLS {

public static void main(String[] args) {

final String username = "abc@gmail.com";
final String password = "abc";

Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");

Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});

try {

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("abc@gmail.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("def@gmail.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler,"
+ "\n\n No spam to my email, please!");

Transport.send(message);

System.out.println("Done");

} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}

现在,我已经使用 D:\... 中的所有 jar 以及存储 .java 文件的位置设置了 CLASSPATH。链接里没有空格。当我编译时,程序做得很好。当我尝试运行代码时问题就开始了。

`

PS D:\Documents\java> javac SendMailTLS.java
PS D:\Documents\java> java SendMailTLS
Error: Could not find or load main class SendMailTLS
PS D:\Documents\java>
PS D:\Documents\java> java Email.SendMailTLS
Error: Could not find or load main class Email.SendMailTLS
PS D:\Documents\java>
PS D:\Documents\java> java .Email.SendMailTLS
Error: Could not find or load main class .Email.SendMailTLS
PS D:\Documents\java>
PS D:\Documents\java> java -cp D:\Documents\java\ Email.SendMailTLS
Error: Could not find or load main class Email.SendMailTLS
PS D:\Documents\java>
PS D:\Documents\java> java -cp D:\Documents\java\ SendMailTLS
Error: Could not find or load main class SendMailTLS
PS D:\Documents\java>
`

知道为什么会这样吗?

提前非常感谢。

Zestos。

最佳答案

您声明您的类位于“Email”包中。类加载器将在子目录“Email”中搜索此类,而不是在当前目录中。在类路径的目录中或当前目录下创建一个目录“Email”,然后将类移至此处。然后将该类调用为 Email.SendMailTLS

或者,只需从类中删除 package 语句即可。

顺便说一句,命名约定是包名保持小写。

关于java - 无法使用 gmail-smtp 和 javamail 发送电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27423178/

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