Mail sending through proxy client
I have the following simple code to send mail through a SOCKS proxy client:
package com.apna.beans;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.activation.DataHandler ;
public class SMail{
public static void main(String[]a){
System.setProperty("proxySet","true");
/*System.getProperties().put("http.proxyPort","25");
System.getProperties().put("http.proxyHost","192.168.0.1");*/
Properties props = System.getProperties();
String msg = "";
// Get system properties
final String username = "vedijitendra";
final String password = "sendmail";
props.put("socksProxyHost", "pc-2");
props.put("socksProxyPort", "1080");
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.user", username);
props.put("mail.smtp.auth","true"); // this is imp for authorisation.
//props.put("mail.host", "192.168.0.1");
props.put("mail.debug", "true");
props.put("mail.store.protocol", "pop3");
props.put("mail.transport.protocol", "smtp");
try{
//here the authorisation takes place using an Anonymous class.
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator (){
protected
javax.mail.PasswordAuthentication
getPasswordAuthentication() {
return new
javax.mail.PasswordAuthentication(username,
password);
}});
// Define message
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("vedijitendra@gmail.com"));
message.addRecipient( Message.RecipientType.TO, new
InternetAddress("jitendravedi@gmail.com"));
message.setSubject("Test");
message.setContent("text", "text/html");
// Send the message
Transport.send(message);
msg = "The mail has been sent.";
} catch(Exception e){
e.printStackTrace();
msg = "The mail has not been sent.";
}
}
}
I am able to connect to the GMail's SMTP server.
However, when the Transport. send method is executed, I get:
java.lang.NullPointerException
at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:242)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1191)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:348)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
Any ideas?

