2012-03-29 7 views
1

Ich bin völlig neu in Java Mail. Ich wollte zuerst das Programm ausführen (was ich durch meine Senioren hatte) und sehen, ob alles gut funktioniert. Also, wenn ich diesen Code kompiliere, bekomme ich Fehler mit der ganzen Klasse und Paketen von Java-Mail, die nicht gefunden werden.
Könnte jemand bitte die Dinge auflisten, die ich brauche, damit mein Programm ohne Probleme kompiliert und ausgeführt werden kann. Ich hatte die "JAva Mail 1.4.5" heruntergeladen, aber es gab keine Installationsdatei?
Ich habe Java 1.6 und Windows XP
Bitte Hilfe ........
Fehler:
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));SMTP-Client Java-Programm

       ^

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:>

Antwort

6

die Java mail.jar Herunterladen und

1.Kopieren die folgenden Code security.jar zu Notizblock und speichern

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 = "[email protected]"; private static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; private static final String[] sendTo = { "[email protected]" }; 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("[email protected]", "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. Gehen Sie zu laufen, geben Sie cmd ein und drücken Sie als EmailAgent.java (die E-Mail-Adressen und das Passwort entsprechend ändern)

    eingeben

  2. Navigieren Sie zu dem Pfad, in dem die Datei "EmailAgent.java" gespeichert ist.

  3. Kopieren Sie Ihre mail.jar und security.jar auf das gleiche Verzeichnis, in dem EmailAgent.java

  4. Kompilierung Java-Datei

    javac -cp gespeichert wird;. Mail.jar; security.jar Emailagent. java

  5. Run kompilierten Java-Klasse

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

Und überprüfen Sie Ihre E-Mail Adresse SENDTO Posteingang .. Bingo :)

1

Wenn Java beschwert sich über nicht-Pakete finden Sie wahrscheinlich auf Ihrem Classpath nicht diese besondere Pakete.

Java-Bibliotheken befinden sich normalerweise in einer .jar-Datei. Sie müssen diese JAR-Datei in Ihren Klassenpfad laden. Das Laden der JAR-Datei in Ihren Klassenpfad ist so einfach wie das Kopieren in den Ordner, auf den der Klassenpfad verweist. Sie können sie auch zu Ihrem Projekt hinzufügen. Kurz gesagt, Sie können es nicht wie eine Windows-Bibliothek installieren. Ohne ein bisschen mehr Detail kann ich wirklich keine Antwort geben. Sie sollten einige der Fehlermeldungen, die Sie erhalten, und die von Ihnen verwendete IDE veröffentlichen.

+0

Ich verwende keine IDE. Ich möchte all diese Programme auf dem Editor ausführen. Ich habe die obigen Fehler eingefügt –

+0

Sie müssen die JAR-Datei zu Ihrem Klassenpfad hinzufügen. Gehen Sie und google, indem Sie dem Klassenpfad eine JAR-Datei hinzufügen. Ich würde vorschlagen, eine Idee wie Netbeans, Eclipse oder sogar Notepad ++ zu bekommen. Die Verwendung von Notepad zur Java-Programmierung wird Sie nicht produktiv machen. – Namphibian

Verwandte Themen