SMTP客户端Java程序

我是Java Mail的新手。 我首先想要执行该程序(我通过我的老年人),看看是否一切正常。 因此,当我编译该代码时,我发现错误,找不到所有Java邮件的类和包。
任何人都可以列出我的程序编译和执行所需的东西没有任何问题。 我下载了“JAva Mail 1.4.5”,但是没有安装文件?
我有JAva 1.6和Windows XP
请帮忙……..
错误:
C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:>

 C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));  ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:> 

C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:>

 C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));  ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:> 

C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:>

C:>javac SMTPClient.java SMTPClient.java:2: package javax.mail does not exist import javax.mail. ; ^ SMTPClient.java:3: package javax.mail.internet does not exist import javax.mail.internet. ; ^ SMTPClient.java:18: cannot find symbol symbol : class Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:18: cannot find symbol symbol : variable Session location: class SMTPClient Session session = Session.getDefaultInstance(properties); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:21: cannot find symbol symbol : class MimeMessage location: class SMTPClient MimeMessage message = new MimeMessage(session); ^ SMTPClient.java:25: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.setFrom(new InternetAddress(from)); ^ SMTPClient.java:28: package Message does not exist message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:28: cannot find symbol symbol : class InternetAddress location: class SMTPClient message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); ^ SMTPClient.java:40: cannot find symbol symbol : class Transport location: class SMTPClient Transport t = session.getTransport("smtps"); ^ 10 errors C:>

下载java mail.jar和security.jar

1.将以下代码复制到记事本并保存为EmailAgent.java(相应地更改电子邮件地址和密码)


import java.security.Security; 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 EmailAgent { private static final String SMTP_HOST_NAME = "smtp.gmail.com"; private static final String SMTP_PORT = "465"; private static final String emailMsgTxt = "Test Message Contents"; private static final String emailSubjectTxt = "A test from gmail"; private static final String emailFromAddress = "abcd@gmail.com"; private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; private static final String[] sendTo = { "xyz@gmail.com" }; public static void main(String args[]) throws Exception { Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); new EmailAgent().sendSSLMessage(sendTo, emailSubjectTxt, emailMsgTxt, emailFromAddress); System.out.println("Sucessfully Sent mail to All Users"); } public void sendSSLMessage(String recipients[], String subject, String message, String from) throws MessagingException { boolean debug = true; Properties props = new Properties(); props.put("mail.smtp.host", SMTP_HOST_NAME); props.put("mail.smtp.auth", "true"); props.put("mail.debug", "true"); props.put("mail.smtp.port", SMTP_PORT); props.put("mail.smtp.socketFactory.port", SMTP_PORT); props.put("mail.smtp.socketFactory.class", SSL_FACTORY); props.put("mail.smtp.socketFactory.fallback", "false"); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("abcd@gmail.com", "password"); } }); session.setDebug(debug); Message msg = new MimeMessage(session); InternetAddress addressFrom = new InternetAddress(from); msg.setFrom(addressFrom); InternetAddress[] addressTo = new InternetAddress[recipients.length]; for (int i = 0; i < recipients.length; i++) { addressTo[i] = new InternetAddress(recipients[i]); } msg.setRecipients(Message.RecipientType.TO, addressTo); // Setting the Subject and Content Type msg.setSubject(subject); msg.setContent(message, "text/plain"); Transport.send(msg); } }

  1. 转到运行,键入cmd并按Enter键

  2. 导航到保存EmailAgent.java文件的路径。

  3. 将mail.jar和security.jar复制到保存EmailAgent.java的同一目录中

  4. 编译java文件

    javac -cp .; mail.jar; security.jar EmailAgent.java

  5. 运行编译的java类

    java -cp .; mail.jar; security.jar EmailAgent

并检查您的sendTo电子邮件地址收件箱..宾果:)

如果Java抱怨没有找到包,那么你的类路径上可能没有那些特定的包。

Java库通常位于.jar文件中。 您需要将此.jar文件加载到类路径中。将jar文件放入类路径就像将其复制到类路径所指向的文件夹一样简单。 您也可以将它们添加到项目中。 所以简而言之,你不能像Windows库一样安装它。 没有更多细节,我无法真正提供答案。 您应该发布一些您正在获得的错误消息以及您正在使用的IDE。