Java代码将我的Web应用程序发送短信发送到印度的任何移动设备

时间:2011-09-13 14:19:25

标签: java javamail

我有一个要求,我需要从我的Web应用程序发送短信到印度的任何移动设备。

我从ipipi.com website获得了以下代码:

我想实现此功能,任何人都可以帮助我在这里提供什么值:

String username = "YoureIPIPIUsername";
String password = "YourPassword";
String smtphost = "ipipi.com";
String compression = "Compression Option goes here - find out more";
String from = "YoureIPIPIUsername@ipipi.com";
String to = "DestinationPhoneNumber@sms.ipipi.com";
String body = "Your Message";

SMTPSend.class

import java.io.*;
import java.net.InetAddress;
import java.util.Properties;
import java.util.Date;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

public class SMTPSend {

    public SMTPSend() {
    }

    public void msgsend() {
        String username = "YoureIPIPIUsername";
        String password = "YourPassword";
        String smtphost = "ipipi.com";
        String compression = "Compression Option goes here - find out more";
        String from = "YoureIPIPIUsername@ipipi.com";
        String to = "DestinationPhoneNumber@sms.ipipi.com";
        String body = "Your Message";
        Transport tr = null;

        try {
         Properties props = System.getProperties();
         props.put("mail.smtp.auth", "true");

         // Get a Session object
         Session mailSession = Session.getDefaultInstance(props, null);

         // construct the message
         Message msg = new MimeMessage(mailSession);

         //Set message attributes
         msg.setFrom(new InternetAddress(from));
         InternetAddress[] address = {new InternetAddress(to)};
         msg.setRecipients(Message.RecipientType.TO, address);
         msg.setSubject(compression);
         msg.setText(body);
         msg.setSentDate(new Date());

         tr = mailSession.getTransport("smtp");
         tr.connect(smtphost, username, password);
         msg.saveChanges();
         tr.sendMessage(msg, msg.getAllRecipients());
         tr.close();
         } catch (Exception e) {
             e.printStackTrace();
         }
    }

      public static void main(String[] argv) {
          SMTPSend smtpSend = new SMTPSend();
          smtpSend.msgsend();
      }
}

3 个答案:

答案 0 :(得分:1)

如果上述代码链接到将收到的电子邮件转换为外发短信的服务,则可能需要按照Alex K的说明购买信用卡。

发送短信的更好方法是使用SMSLib与蜂窝提供商的SMSC进行交互。然后,您还需要确保提供商能够将SMSes路由到所有蜂窝网络。

答案 1 :(得分:1)

您的问题似乎特定于某些服务提供商/ API。但我想在这里给出一个通用的答案。

发送短信需要SMS网关到SMSC。有两种简单的方法[原因可能更多]。 您可以使用SIM卡[启用短信],也可以使用其他人的SIM卡。 SIM卡通过SMSC服务提供商提供与SMS网关的连接。

无论哪种方式,发送短信都不是免费的。其他人可能会说它是LIKELY免费,但至少必须有广告或长期商业营销策略。

您继续使用的方式是通过他们提供的API使用其他人的SIM卡。由于那些具有专用的批量SMS帐户,它可能更快,多线程,服务。他们应该对您有所帮助以解决您的问题。

如果您要从SIM卡发送短信,则必须将SIM卡连接到计算机并使用标准API来拨打短信功能。 SMSLib是我的建议。您需要一台硬件才能将SIM卡连接到PC,或者将移动设备连接到PC,或者使用数据调制解调器[简单]并通过COM端口进行接口。

如果您想尝试自己的短信网关,请尝试使用此代码here

答案 2 :(得分:0)

首先在ipipi.com中创建一个帐户,然后点击发送到邮件的激活链接对其进行验证。并将您的用户名作为YoureIPIPIUsername和密码作为YourPassword。

String smtphost = "ipipi.com"

String compression = "Compression Option goes here - find out more";

有一些压缩类型here,如果你不想要任何你可以提及的“无”

String from = "YoureIPIPIUsername@ipipi.com"
String to = "DestinationPhoneNumber@sms.ipipi.com";

目的地ph值应为+91且为10位数

String body = "Your Message";