7
回答
关于JMSN如何主动发送消息的问题
【寻找人气王】邀新用户免费体验华为云服务,百元话费等你拿!   

最近好多网上的朋友发邮件询问如何通过jMSN主动发送消息的问题,现在给出解决的代码如下:

String lastLogin = "test@hotmail.com";
messenger.doCall(lastLogin);
Thread.sleep(1000);//最好在此有所延迟,要不 SwitchboardSession创建容易失败
SwitchboardSession ss = messenger.doCallWait(lastLogin);
MimeMessage msg = new MimeMessage();
msg.setKind(MimeMessage.KIND_MESSAGE);
msg.setMessage(" 你好,周末愉快!");
ss.sendInstantMessage(msg);

举报
红薯
发帖于10年前 7回/337阅
共有7个评论 最后回答: 8年前

最近好多网上的朋友发邮件询问如何通过jMSN主动发送消息的问题,现在给出解决的代码如下:这个早解决了 !(谢谢)

我想问下 public class Robot extends Thread {} 里面有邀请好友和发送指定好友消息 的方法  现在是每次要操作都得重启服务

有好的解决方案没有!

引用来自#3楼“小编辑”的帖子

恨死这些用机器人发msn消息的人,鄙视~

只针对公司会员 服务用的!

引用来自#2楼“yuehuaay”的帖子

最近好多网上的朋友发邮件询问如何通过jMSN主动发送消息的问题,现在给出解决的代码如下:这个早解决了 !(谢谢)

我想问下 public class Robot extends Thread {} 里面有邀请好友和发送指定好友消息 的方法  现在是每次要操作都得重启服务

有好的解决方案没有!

为什么“现在是每次要操作都得重启服务”?

public class ePanelRobot extends Thread {

private static MSNMessenger msnfirst;

private static MSNMessenger msnsecond;

public static void main(String[] args) {

// 创建MSNMessenger对象,传入登入帐号和密码

msnfirst = new MSNMessenger("用户名", "密码");

// setInitialStatus()方法设置它登入的的状态为在线

msnfirst.setInitialStatus(UserStatus.ONLINE);

// 添加一个MsnListener监听,交由下面的MSNAdapter类处理

msnfirst.addMsnListener(new MSNAdapter(msnfirst));

msnfirst.login();

msnsecond = new MSNMessenger("用户名", "密码");

// setInitialStatus()方法设置它登入的的状态为在线

msnsecond.setInitialStatus(UserStatus.ONLINE);

// 添加一个MsnListener监听,交由下面的MSNAdapter类处理

//MSNAdapter可以继承其他类 实习不同机器人方法

msnsecond.addMsnListener(new MSNAdapter(msnsecond));

msnsecond.login();

MimeMessage me = new MimeMessage("success");

         me.setKind(MimeMessage.KIND_MESSAGE);

         try {

         Thread.currentThread().sleep(12000);

         //主动发送消息

          msnfirst.doCall("msn邮件地址"); // 接收人

         //主动添加好友

          msnfirst.addFriend("msn邮件地址");

        

} catch (Exception e) {

e.printStackTrace();

}

// 捕捉Ctrl+C的输入以便注销MSN的登录

Runtime.getRuntime().addShutdownHook(new ePanelRobot());

}

}

这个必须要重启服务 才能执行啊 怎么在程序运行的时候执行这段

首先不应该在线程里启用 MSNMessenger,应由主线程保持 MSNMessenger 的实例。

另外你这只是一个线程,而你说的 “这个必须要重启服务 才能执行啊”,不明白这句话的意思。

我的理解是既然是线程,那么 new ePanelRobot().start() 不就可以了吗?

想问下jmsn怎么实现服务器消息的响应,谢谢。

public void processVER( IncomingMessage msg ) throws Exception
 {
  System.out.println("***NotificationProcessor***processVER() begin IncomingMsg = " + msg.toString() + "*********");
  OutgoingMessage out = new OutgoingMessage("CVR");
  markTransactionId( out );
  //out.add( "0x0412" ); //0412韩语 0804简体中文  0409美国英语  0411日语
  out.add( "0x0804" );
  out.add( System.getProperty("os.name").replace(' ', '_') ); // OS name
  out.add( System.getProperty("os.version") ); // OS version
  out.add( System.getProperty("os.arch") ); // OS architecture
  out.add( "MSNMSGR" );
  out.add( "14.0.8089" );
  out.add( "MSMSGS" );
  out.add( msn.getLoginName() );
  out.setBackProcess( Callback.getInstance("processCVR", this.getClass()) );

  sendMessage( out );
  System.out.println("***NotificationProcessor***processVER() end OutgoingMsg = " + out.toString() + "********");
 }

当客户端发送CVR消息到服务器时,请问服务器的响应jmsn是如何处理的呢?非常非常感谢~~~

顶部