tags:

views:

127

answers:

3

I am getting the compiler error. Can anybody debug this?

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
public class SendMail
{
  public static void main(String [] args)
  {
    SendMail sm=new SendMail();
     sm.postMail("[email protected]","hi","hello","[email protected]");
   }

public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
{
    boolean debug = false;

     //Set the host smtp address
     Properties props = new Properties();
     props.put("mail.smtp.host", "webmail.emailmyname.com");

    // create some properties and get the default Session
    Session session = Session.getDefaultInstance(props, null);
    session.setDebug(debug);

    // create a message
    Message msg = new MimeMessage(session);

    // set the from and to address
    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);


    // Optional : You can also set your custom headers in the Email if you Want
    msg.addHeader("MyHeaderName", "myHeaderValue");

    // Setting the Subject and Content Type
    msg.setSubject(subject);
    msg.setContent(message, "text/plain");
    Transport.send(msg);
}
}
+3  A: 

Your postMail function is expecting the first parameter, recipients to be an array of Strings, but in your main method you are passing a String literal. The compiler is telling you that it's unable to find a version of the postMail method that matches a parameter-list like (String, String, String, String).

Try calling it like this instead:

sm.postMail(new String[]{"[email protected]"},"hi","hello","[email protected]");

Another idea would be to make an overloaded version of your postMail method if this is something you intend to do often.

Skrud
Note that you'll have to handle the MessagingException around the call to `postMail()` after doing this.
Lord Torgamus
A: 

Make sure that you've included mail.jar and activation.jar to your classpath.

Roman
I have included both in classpath
A: 

You must specify the main class in the manifest file.

Marcus Adams