开发者

What's wrong with this code [closed]

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center. Closed 11 years ago.

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("abc@yahoo.com","hi","hello","xyz@gmail.com");
   }

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.setSub开发者_如何转开发ject(subject);
    msg.setContent(message, "text/plain");
    Transport.send(msg);
}
}


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[]{"abc@yahoo.com"},"hi","hello","xyz@gmail.com");

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


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


You must specify the main class in the manifest file.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜