Sms

Alguém ai sabe como podemos enviar uma SMS através de um aplicativo Java? Como todas as operadoras de telefonia possuem sites onde podemos mandar as benditas eu pensei em enviar um http POST diretamente para o site. Existe solução melhor???

Existe um projeto brasileiro sobre envio de SMS no seguinte endereço:
http://smssender.codigolivre.org.br/

Pô cara… por uma bobeda minha postei um link sobre isso lá no java básico… dê uma olhada…

Um abraço!!!

OK, muito obrigado! Eu já consegui! :smiley:

Manda o codigo do sms para dar uma olhada.

Valeo[/code]

Olha, meu código é um pouco velhinho, acho que tem uma forma mais moderna de se fazer isso, inclusive acho que já foi citado no fórum. Dá uma pesquisada e se mesmo assim ainda quiser o exemplo eu posto sem problemas. Até porque o código deve estar perdido em algum obscuro servidor nos porões da empresa… :slight_smile:

Eu já dei uma olhada mais não encontrei nada.

caso vc ache o código na obscuridão do seu servidores :lol: vc poderia mandar para

fabriciogiordani@ig.com.br

Abraço

Para enviar um SMS, você precisa conectar à SMSC de uma operadora. Com certeza isso não estará aberto, a não ser que os caras sejam loucos.

Então o caminho é fazer um POST HTTP, mas para evitar SPAM as operadoras estão começando a bloquear isso também.

O que sei que existe em alguns casos, são parcerias entre determinadas empresas e as operadoras. Assim, a operadora libera uma URL para que a empresa faça seu POST HTTP e envie o SMS.

Como fazer o post ( eu tenho acesso a enviar )?

Dê uma olhada na classe java.net.URLConnection.

Você precisa saber qual a URL da operadora e quais parâmetros devem ser enviados.

Aqui no GUJ teve uma notícia sobre isso…

http://www.guj.com.br/servlet/guj?PARSE=true&MAMUTE_ACTION=br.com.guj.action.ListStory&MAMUTE_TEMPLATE=ShowStory&LIST_STORY=single&StoryId=200&PAGE=1

[]'s

Esse exemplo é para a operadora ATL do Rio de Janeiro: www.atl.com.br

public boolean enviaAtl(String ddd, double telefone, String emissor_nome,
                         String emissor_ddd, double emissor_telefone, 
                         String mensagem){

  DecimalFormat df = new DecimalFormat("########");
  boolean       st = false;

  try{
    // Constroi os dados
    String msg = URLEncoder.encode("pre1"       , "UTF-8") + "=" + URLEncoder.encode(ddd                        , "UTF-8") + "&" +
                 URLEncoder.encode("min_usr"    , "UTF-8") + "=" + URLEncoder.encode(df.format(telefone)        , "UTF-8") + "&" +
                 URLEncoder.encode("min_de"     , "UTF-8") + "=" + URLEncoder.encode(emissor_nome               , "UTF-8") + "&" +
                 URLEncoder.encode("min_ddd"    , "UTF-8") + "=" + URLEncoder.encode(emissor_ddd                , "UTF-8") + "&" +
                 URLEncoder.encode("min_dddfone", "UTF-8") + "=" + URLEncoder.encode(df.format(emissor_telefone), "UTF-8") + "&" +
                 URLEncoder.encode("msg"        , "UTF-8") + "=" + URLEncoder.encode(mensagem                   , "UTF-8");

    // Envia
    URL url = new URL("http://www.atlnetmensagem.com.br/submittorpedo.asp");
    URLConnection conn = url.openConnection();
    conn.setDoOutput(true);
    OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
    wr.write(msg);
    wr.flush();

    // Get the response
    BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line;
    for(int ix=0; (line = rd.readLine())!= null; ++ix){
       if(ix==5 && line.equals("<img src=/images_site/retorno_torpedo/sucesso.gif>"))
         st = true;
//     System.out.println(line);
       }

    wr.close();
    rd.close();
  } catch(Exception e){
         System.out.println(e.getMessage());
         return false;
         }

  return st;
 }

Acho que dava pra fazer isso mais facil usando o Commons HTTP Client, nao? :slight_smile:

aaháaa como sempre, vc matou a charada CV!!! usando http client era disso que eu precisava… simular um browser (cliente http)! assim posso me autenticar na página de msgs!!! Vou lá dar uma “fuçada”!
valeus!!

Eu avisei que era um código furreca… 8)