Primeiro, baixe a lib Java MSN Messenger Library (JML) em http://jml.blathersource.org/
Você precisará criar 2 classes.
Primeiro, crie a classe MSNListener, desse jeito:
import net.sf.jml.MsnContact;
import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnSwitchboard;
import net.sf.jml.event.MsnAdapter;
import net.sf.jml.message.MsnControlMessage;
import net.sf.jml.message.MsnDatacastMessage;
import net.sf.jml.message.MsnInstantMessage;
import net.sf.jml.message.MsnSystemMessage;
import net.sf.jml.message.MsnUnknownMessage;
public class MsnListener extends MsnAdapter {
public void exceptionCaught(
MsnMessenger messenger,
Throwable throwable) {
}
public void loginCompleted(
MsnMessenger messenger) {
}
public void logout(
MsnMessenger messenger) {
}
public void instantMessageReceived(
MsnSwitchboard switchboard,
MsnInstantMessage message,
MsnContact friend) {
switchboard.sendMessage(message, false);
}
public void systemMessageReceived(
MsnMessenger messenger,
MsnSystemMessage message) {
}
public void controlMessageReceived(
MsnSwitchboard switchboard,
MsnControlMessage message,
MsnContact contact) {
switchboard.sendMessage(message, false);
}
public void datacastMessageReceived(
MsnSwitchboard switchboard,
MsnDatacastMessage message,
MsnContact friend) {
switchboard.sendMessage(message, false);
}
public void unknownMessageReceived(
MsnSwitchboard switchboard,
MsnUnknownMessage message,
MsnContact friend) {
}
public void contactListInitCompleted(
MsnMessenger messenger) {
}
public void contactListSyncCompleted(
MsnMessenger messenger) {
}
public void contactStatusChanged(
MsnMessenger messenger,
MsnContact friend) {
}
public void ownerStatusChanged(
MsnMessenger messenger) {
}
public void contactAddedMe(
MsnMessenger messenger,
MsnContact friend) {
}
public void contactRemovedMe(
MsnMessenger messenger,
MsnContact friend) {
}
public void switchboardClosed(
MsnSwitchboard switchboard) {
}
public void switchboardStarted(
MsnSwitchboard switchboard) {
}
public void contactJoinSwitchboard(
MsnSwitchboard switchboard,
MsnContact friend) {
}
public void contactLeaveSwitchboard(
MsnSwitchboard switchboard,
MsnContact friend) {
}
}Agora, crie a classe MSNSender, desse jeito:
import java.util.Properties;
import net.sf.jml.Email;
import net.sf.jml.MsnMessenger;
import net.sf.jml.MsnProtocol;
import net.sf.jml.MsnUserStatus;
import net.sf.jml.impl.MsnMessengerFactory;
public class MSNSender {
private String username;
private String password;
private String proxyHost;
private String proxyPort;
public MSNSender(
String username,
String password,
String proxyHost,
String proxyPort) {
this.username = username;
this.password = password;
this.proxyHost = proxyHost;
this.proxyPort = proxyPort;
}
public void send(
String msg,
String to) {
if (proxyHost != null && proxyHost.trim().length() > 0) {
Properties systemSettings = System.getProperties();
systemSettings.put("https.proxySet", "true");
systemSettings.put("https.proxyHost", proxyHost);
systemSettings.put("https.proxyPort", proxyPort);
systemSettings.put("http.proxySet", "true");
systemSettings.put("http.proxyHost", proxyHost);
systemSettings.put("http.proxyPort", proxyPort);
}
MsnMessenger messenger = MsnMessengerFactory.createMsnMessenger(username, password);
messenger.setSupportedProtocol(new MsnProtocol[] { MsnProtocol.MSNP11 });
messenger.getOwner().setInitStatus(MsnUserStatus.ONLINE);
messenger.setLogIncoming(false);
messenger.setLogOutgoing(true);
messenger.addListener(new MsnListener());
messenger.login();
// Tempo de espera para completar o login
try {
Thread.sleep(16000);
} catch (InterruptedException e) {
e.printStackTrace();
}
messenger.sendText(Email.parseStr(to), msg);
messenger.logout();
}
public static void main(String args[]){
MSNSender sender = new MSNSender("rafael@hotmail.com","senha","","");
sender.send("Oi! Tudo bem?", "maria@hotmail.com");
}
}