I am totally new to Java Mail. I first wanted to execute the program (which i had through my seniors )and see whether everything is working fine. So when i compile that code i get errors with all the class and packages of Java mail being not found.
Could anyone please list out the things that i need for my program to compile and execute without any problems. I had downloaded the "JAva Mail 1.4.5" but there was no installer file in that?
I have JAva 1.6 and Windows XP
Please Help........
Errors :
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:>
Download the java mail.jar and security.jar
1.Copy the below code to notepad and save as EmailAgent.java (change the email adresses and password accordingly)
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);
}
}
Go to run, type cmd and press enter
Navigate to path where EmailAgent.java file is saved.
Copy your mail.jar and security.jar to the same directory where EmailAgent.java is saved
compile java file
javac -cp .;mail.jar;security.jar EmailAgent.java
Run compiled java class
java -cp .;mail.jar;security.jar EmailAgent
And check your sendTo email address inbox.. Bingo :)
If Java is complaining about not finding packages you probably don't have those particular packages on your classpath.
Java Libraries are normally found in a .jar file. You will need to load this .jar file into your classpath.Loading the jar file into your classpath is as simple as copying it to the folder where your classpath is pointing to. You can also add them to your project. So in short you wont be able to install it like a windows library. Without a little more detail I cant really provide a answer. You should post some of the error messages you are getting and which IDE you are using.