Error while sending E-Mail -- 501 Syntax error in parameters or arguments
Dear Friends,
I was trying to send E-Mail using the NTLM Authentication mechanism using the below program:
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.PasswordAuthentication;
import java.util.Date;
import com.sun.mail.smtp.*;
public class MailerWithAuthentication
{
private String smtpServer;
private String fromEmailId;
private String toEmailId;
private String ccEmailId;
private String bccEmailId;
private String subject;
private String message;
private String host;
public MailerWithAuthentication(String toemail, String msg,String sub,String fromId,String host)
{
this.toEmailId = toemail;;
this.subject = sub;
this.message = msg;
this.fromEmailId=fromId;
this.host=host;
}
public void sendMail()
{
String mailContent = "";
try
{
Authenticator authenticator = new Authenticator();
Properties props = new Properties();
props.put("mail.smtp.host",this.host );
props.put("mail.smtp.port", "25");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.auth.mechanisms", "NTLM");
props.put("mail.smtp.auth.ntlm.flags", "0x00000200");
props.put("mail.smtp.auth.ntlm.domain","sal.ad");
props.put("mail.debug", "true");
Session session = Session.getDefaultInstance(props,authenticator);
Message msg = new MimeMessage(session);
MimeMessage message = new MimeMessage(session);
message.setContent("This is a test", "text/plain");
message.setFrom(new InternetAddress(this.fromEmailId));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(this.toEmailId));
Transport.send(message);
}
catch (Exception e)
{
e.printStackTrace();
System.out.println("Exception in MailerThread : run: " + e.getMessage());
}
}
private class Authenticator extends javax.mail.Authenticator {
private PasswordAuthentication authentication;
public Authenticator() {
String username= "sal.ad\mailuser";
String password = "mail@123";
authentication = new PasswordAuthentication(username, password);
}
protected PasswordAuthentication getPasswordAuthentication() {
return authentication;
}
}
public static void main(String args[])
{
try
{
System.out.println(" Usage : java MailerWithAuthentication <To-Email> <Message> <Subject> <From-Email> <Mail-Server-IP>");
MailerWithAuthentication mailer = new MailerWithAuthentication (args[0],args[1],args[2],args[3],args[4]);
mailer.sendMail();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
Following is the output while running the program:
DEBUG: JavaMail version 1.4ea
DEBUG: java.io.FileNotFoundException: /usr/java/jdk1.5.0_14/jre/lib/javamail.providers (No such file or directory)
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.providers
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: !anyLoaded
DEBUG: not loading resource: /META-INF/javamail.address.map
DEBUG: java.io.FileNotFoundException: /usr/java/jdk1.5.0_14/jre/lib/javamail.address.map (No such file or directory)
Mechanishm = NTLM
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "192.168.14.6", port 25, isSSL false
220 ****************************************************************************
DEBUG SMTP: connected to host "192.168.14.6", port: 25
EHLO
501 Syntax error in parameters or arguments -
HELO
501 Syntax error in parameters or arguments -
javax.mail.MessagingException: 501 Syntax error in parameters or arguments -
=================================
The error is :
EHLO
501 Syntax error in parameters or arguments -
HELO
501 Syntax error in parameters or arguments -
=================================
Please tell me what went wrong here. Is it due to any mistake in the program ?
Thanks in advance.