import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.mail.event.*;
import java.net.*;
import java.util.*;
public class servletmail extends HttpServlet
{
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
PrintWriter out=response.getWriter();
response.setContentType("text/html");
try
{
Properties props=new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host","smtp.gmail.com");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
Authenticator authenticator = new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication("user", "pass");
}
};
Session sess=Session.getDefaultInstance(props,authenticator);
Message msg=new MimeMessage(sess);
msg.setFrom(new InternetAddress("abc@gmail.com"));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress("abc@gmail.com"));
msg.setSubject("Hello JavaMail");
msg.setText("Welcome to JavaMail");
Transport.send(msg);
out.println("mail has been sent");
}
catch(Exception e)
{
System.out.println("err"+e);
}
}
}
im working with above im gettin d following error
servletmail.java:22: reference to Authenticator is ambiguous, both class java.ne
t.Authenticator in java.net and class javax.mail.Authenticator in javax.mail mat
ch
Authenticator authenticator = new Authenticator()
^
servletmail.java:22: reference to Authenticator is ambiguous, both class java.ne
t.Authenticator in java.net and class javax.mail.Authenticator in javax.mail mat
ch
Authenticator authenticator = new Authenticator()
^
2 errors
i have followed the example in
http://java.sun.com/developer/onlineTraining/JavaMail/contents.html
how should i get the output..will the above code…work
what are the changes that need to be made..im using thunderbird smtp server
The error indicates that there are two possible
Authenticatorclasses which are being referenced here – namelyjava.net.Authenticator and javax.mail.Authenticatoras the error says.This is because you have imported java.net.* and javax.mail.* and the compiler does not know which
Authenticatoryou need.Fix this by explicitly importing
OR qualify the Authenticator on line 22 as
UPDATE
Since you are having problems with sending the mail, first check whether your network admins have given you permissions to connect to the smtpserver at gmail. Are you behind a proxy?
After creating
sess, add this line to the code:sess.setDebug(true);Look at the messages and see how far you get.
Try the other debug tips given at: http://java.sun.com/products/javamail/FAQ.html#debug
UPDATE 2
I’ve tried running your code and it works for me including sending the email.
I had to add one line for props
And of course, change this
return new PasswordAuthentication("user", "pass");to your actual username/password.And “abc@gmail.com” to your actual email id.