使用短信从j2me手机发送短信到电子邮件

时间:2010-02-01 04:13:27

标签: java email java-me sms midp-2.0

我正在开发一个j2me应用程序,我想知道是否有人知道如何将短信发送到电子邮件地址。因为我试图使用无限制的文本计划而不是无限制的数据计划来发送数据,所以我需要使用短信。

我修改了http://freecode-freecode.blogspot.com/2008/06/how-to-send-sms-in-j2me.html的代码示例,但我似乎无法向电子邮件发送消息。相关代码如下......

  MessageConnection smsCon= (MessageConnection) Connector.open("sms://email@emailprovider.com:25");
  TextMessage txtmessage = (TextMessage) smsCon.newMessage(MessageConnection.TEXT_MESSAGE);
  txtmessage.setAddress("sms://email@emailprovider.com:25");// !!
  txtmessage.setPayloadText("Hello from j2me sms api");
  smsconn.send(txtmessage);

但它不起作用。我不知道如何处理这个问题。我通过手机的内置短信手动发送短信到电子邮件,但我似乎无法用代码进行。

3 个答案:

答案 0 :(得分:3)

任何支持JSR 205的手机应该能够大致如下(未编译或测试!!):

 MessageConnection emailCon = (MessageConnection) Connector.open("mms://email@emailprovider.com");
 MultipartMessage email = (MultipartMessage) emailCon.newMessage(MessageConnection.MULTIPART_MESSAGE);
 email.setSubject("Hello from j2me WMA 2.0 api");
 // add some MessageParts in here...
 emailCon.send(email);

MMS URL的规范概述了电子邮件地址是有效的MMS目的地。

答案 1 :(得分:1)

除非您在接收短信的实体或SMS服务中心内获得特别支持,否则您不能将电子邮件作为短信发送。

您的运营商/运营商可能支持通过SMS服务中心发送电子邮件。通常,这是通过将SMS发送到特定的收件人号码并对邮件正文中的电子邮件地址进行编码来实现的,该邮件地址由适当的标记(*,#,数字)包围。我已经将短信发送到这样的传真,但它已经超过10年了......

如果您的运营商/运营商没有此类支持,您可以找到其他类似方式的其他SMS-to-email服务。

更新:找到服务:http://www.visualtron.com/sms2email.htm

您还可以在具有无限数据计划的设备上运行的J2me MIDlet中创建自己的SMS到电子邮件网关。然后,您需要将SMSes发送到网关MIDlet侦听的特定端口。然后必须通过SMTP或HTTP连接发送实际的电子邮件。这不是我推荐的解决方案,因为它相当脆弱。

请注意,JSR-120和JSR-205(两个无线消息JSR)仅指定对SMS和MMS消息的支持,但实现可以添加其他消息传递方案。从我快速查看规格,我无法以任何方式确定特定设备支持哪些方案。还应注意,MMS还需要数据连接,但运营商/运营商通常使用MMS和其他数据的单独连接和价格。因此,即使您的设备支持“email://”方案,也需要数据连接才能工作。

答案 2 :(得分:0)

我认为它不适用于当前的WMA规范。 如果你想创建这样的服务,我建议你创建一个接收SMS的SMS网关,以及连接到互联网的J2SE / J2EE应用程序。 SMS网关解析短信内容的电子邮件地址,发送到J2SE / J2EE应用程序,该应用程序根据参数电子邮件地址和其他短信内容创建电子邮件。