2012-03-29 4 views
1

Я совершенно не знаком с 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));SMTP-клиент Java-программа

       ^

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

ответ

6

Скачать 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 = "[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. Перейти бежать, CMD типа и нажмите клавишу ВВОД

  2. Перейти к пути, по которому сохраняется файл EmailAgent.java.

  3. Скопируйте mail.jar и security.jar в тот же каталог, где EmailAgent.java сохраняется

  4. компиляции Java файл

    Javac -cp;. Mail.jar; security.jar EmailAgent. Java

  5. Run компилируется Java класс

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

и проверить SENDTO адрес электронной почты почтовый ящик .. Бинго :)

1

Если Java жалуется не найти пакеты, которые вы, вероятно, не имеют те конкретные пакеты на вашем пути к классам.

Библиотеки Java обычно находятся в файле .jar. Вам нужно будет загрузить этот .jar-файл в ваш путь к классам. Загрузка файла jar в ваш путь к классам так же просто, как скопировать его в папку, куда указывает ваш путь к классам. Вы также можете добавить их в свой проект. Короче говоря, вы не сможете установить его, как библиотеку Windows. Без более подробной информации я не могу дать ответ. Вы должны опубликовать некоторые сообщения об ошибках, которые вы получаете, и какую IDE вы используете.

+0

Я не использую IDE. Я хочу сделать все эти программы на Notepad. Я вставил ошибки выше –

+0

Вам нужно будет добавить JAR-файл в ваш путь к классам. Go и google добавляет файл jar в путь к классам. Я бы предложил получить такой идеал, как netbeans, eclipse или даже notepad ++. Использование блокнота для кодирования Java не сделает вас продуктивным. – Namphibian