2010-02-10 32 views
7

Chcę wysłać SMS na telefon komórkowy z aplikacji internetowej, czy to możliwe? Jak mam to zrobić?Jak wysłać SMS za pomocą Javy

+1

Poszukujesz również jest doceniana. Jest tyle pytań o wysyłanie SMS-ów. – Shoban

+1

@Shoban Wydaje mi się, że najlepszym sposobem na wyrażenie swojej troski są mechanizmy oferowane przez witrynę, np. Downvoting. Z pewnością komentarze są jedną z tych metod, ale niezależnie od jakości pytania, nie jest wymagana nieuprzejma i sarkastyczna reakcja i po prostu przeciąga stronę. – Howiecamp

+0

Zobacz http://webmasters.stackexchange.com/questions/533/how-to-add-sms-text-messaging-functionality-to-my-website/1398#1398 – Adam

Odpowiedz

0

Możesz użyć tego darmowego przykładowego programu Java do wysyłania wiadomości SMS z komputera przy użyciu modemu GSM podłączonego do komputera do portu COM. Należy również pobrać i zainstalować aplikację Java commi z Sun.

Do działania tego programu potrzebne są następujące pliki Java.

  1. SerialConnection.java (Plik ten służy do podłączenia do portu COM z programu Java)

  2. SerialConnectionException.java (Ten plik jest do obsługi połączeń szeregowych wyjątków w programie Java)

  3. SerialParameters.java (Ten program jest używany do ustawiania swoich właściwości portu COM do podłączenia do portu COM z programu java)

  4. Sender.java (jest to prog ram, który implementuje działa i wysyła SMS za pomocą połączenia szeregowego)

  5. SMSClient.java (Ta klasa java jest główną klasą, która może być utworzona w twoim własnym programie java i wywołana w celu wysłania SMS-a. Ten program z kolei użyje wszystkich powyższych czterech plików wewnętrznie do wysłania wiadomości SMS).

Pobrać Wyślij SMS Java przykładowe pliki programu

/* 
* 
* A free Java sample program 
* A list of java programs to send SMS using your COM serial connection 
* and a GSM modem 
* 
* @author William Alexander 
* free for use as long as this comment is included 
* in the program as it is 
* 
* More Free Java programs available for download 
* at http://www.java-samples.com 
* 
* 
* Note: to use this program you need to download all the 5 java files 
* mentioned on top 
* 
*/ 
public class SMSClient implements Runnable{ 

    public final static int SYNCHRONOUS=0; 
    public final static int ASYNCHRONOUS=1; 
    private Thread myThread=null; 

    private int mode=-1; 
    private String recipient=null; 
    private String message=null; 

    public int status=-1; 
    public long messageNo=-1; 


    public SMSClient(int mode) { 
     this.mode=mode; 
    } 

    public int sendMessage (String recipient, String message){ 
    this.recipient=recipient; 
    this.message=message; 
    //System.out.println("recipient: " + recipient + " message: " + message); 
    myThread = new Thread(this); 
    myThread.start(); 
// run(); 
    return status; 
    } 
    public void run(){ 

    Sender aSender = new Sender(recipient,message); 

    try{ 
     //send message 
      aSender.send(); 

     // System.out.println("sending ... "); 

     //in SYNCHRONOUS mode wait for return : 0 for OK, 
     //-2 for timeout, -1 for other errors 
     if (mode==SYNCHRONOUS) { 
      while (aSender.status == -1){ 
      myThread.sleep (1000); 
      } 
     } 
     if (aSender.status == 0) messageNo=aSender.messageNo ; 

    }catch (Exception e){ 

     e.printStackTrace(); 

    } 

    this.status=aSender.status ; 

    aSender=null; 


    } 
} 
+0

Dzięki niechciane, buduję to w fasoli netto, Mogę wiedzieć, jak wysłać sms może u mnie mnie zaangażowane kroki – Aravindkumar

+3

kopiowanie czegoś z google naprawdę nie wydaje się dobrą odpowiedzią do mnie. –

+4

skoncentrować się na rozwiązaniach nie martw się o źródło mr.valentin – ratty

9

Najprostszym sposobem na to jest użycie bramki SMS.

jest wiele takich, których użyłem: Clickatel, do których po prostu wysyłam żądanie XML, a brama robi resztę za nic.

mam zrobić to przy użyciu Java i apache commons HTTP Client

2

Here można znaleźć projekt SMS API Java w SourceForge.

Poza tym do infrastruktury potrzebna jest Sms Gateway. Niektóre firmy oferują interfejsy API, dzięki którym program staje się coraz łatwiejszy w użyciu.

2

Step-1. Pobierz Mail.jar i Activation.jar (patrz Zasoby dla linków) i zapisz w katalogu biblioteki Java na dysku lokalnym komputera.

Krok 2.

Uruchom nową klasę Java w środowisku Java Integrated Development Environment (IDE) i nadaj mu nazwę "MyMobileJava.java".

Krok 3.

Wprowadź następujące biblioteki Java na początku klasy Java. Biblioteki te zawierają wymagane zasoby Java Mail i Communications API oraz inne biblioteki obsługujące wejścia/wyjścia i biblioteki internetowe do wysyłania wiadomości tekstowych SMS.

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.*; 

Krok 4 Umieść następujący kod Java po instrukcje importu biblioteki w celu instancję klasy Java i przypisać wartości domyślnej wiadomości tekstowych SMS.

public class SMTPSend { 

     public SMTPSend() { 
     } 

     public void msgsend() { 
      String username = "MySMSUsername"; 
      String password = "MyPassword"; 
      String smtphost = "MySMSHost.com"; 
      String compression = "My SMS Compression Information"; 
      String from = "[email protected]"; 
      String to = "[email protected]"; 
      String body = "Hello SMS World!"; 
      Transport myTransport = null; 

Krok 5 Tworzenie kodu Java, aby utworzyć nową sesję komunikacyjną, które zostaną użyte do skonfigurowania informacje zawarte w wiadomości tekstowej. Ta informacja zostanie przygotowana do wysłania. Wpisz następujący kod Java w klasie Java na końcu kodu wprowadzonego w kroku czwartym.

try { 
    Properties props = System.getProperties(); 
    props.put("mail.smtp.auth", "true"); 
    Session mailSession = Session.getDefaultInstance(props, null); 
    Message msg = new MimeMessage(mailSession); 
    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()); 

Krok 6 wysłać wiadomość tekstową poprzez podłączenie do adresu hosta SMS, zapisywanie zmian do wiadomości, a następnie wysłanie informacji. Aby to zrobić, wprowadź następujący kod Java, aby zakończyć klasę Java.

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

    public static void main(String[] argv) { 
    SMTPSend smtpSend = new SMTPSend(); 
    smtpSend.msgsend(); 
    } 
} //enter code here` 
+0

Prawdopodobnie powinien dodać cztery spacje przed każdą linią kodu; to jest podświetlone i nie wszystkie są umorusane na jednej linii. – icktoofay

+2

Również wybór kodu i naciśnięcie ctrl + K powoduje to. – icktoofay

+0

dziękuję icktoofay – ratty

0

Najprostszym sposobem na to jest znalezienie operatora, który obsługuje SMSy za pośrednictwem poczty ..

Ex. Masz Telia/Comviq/Chello lub coś innego. Jeśli wyślesz wiadomość e-mail do; [email protected] wyśle ​​wiadomość e-mail za pośrednictwem wiadomości SMS na telefon.

0

Proszę spojrzeć na SMSLib (http://smslib.org), bibliotekę typu open source do wysyłania i odbierania wiadomości SMS za pomocą modemu GMS lub telefonu komórkowego. To naprawdę świetna biblioteka.

0

Napisałem małą bibliotekę maven do uzyskiwania dostępu do darmowego (dla klientów tylko) interfejsu internetowego szwajcarskich operatorów moblie Sunrise i Orange. Źródło można znaleźć pod adresem: http://github.com/resmo/libjsms

0

Wystarczy pobrać wszystkie wiadomości e-mail z telefonu komórkowego na adres e-mail (SMS Gateway) i wysłać wiadomość e-mail na ten adres e-mail na adres SMS.

Powiązane problemy