Avatar billede cool-wil Nybegynder
03. januar 2002 - 19:21 Der er 7 kommentarer og
2 løsninger

nogen ide?

Er der nogle der har en ide til hvordan man sender en sms, uden at have et modem( f.eks. via adsl)
jeg har set jpsoft.dk har lavet sådan en, men skal man så ikke have egen gateway?

Dette skal gøres via delphi:-)
Avatar billede morten_s Nybegynder
03. januar 2002 - 19:32 #1
Du kan  sende sms´en som en mail til det pågældende telefonselskab

<MobilNr>@note.sonofon.dk
<MobilNr>@sms.tdm.dk
<MobilNr>@sms.mobilix.dk
<MobilNr>@gsm1800.telia.dk

hvis du ikke ved hvilket selskab det pågældende nr har skulle du kunne bruge orange .. den skulle sende den videre til det rette selskab.
<MobilNr>@orange.dk

Function SendSMSMailMessage(MailServer, MailTo, MailFrom, MailSubject, MailMsg: string):boolean;
begin
    Result                    := False;
    SmtpCli1.Host            := MailServer;
    SmtpCli1.Port            := \'smtp\';
    SmtpCli1.FromName        := MailFrom;
    SmtpCli1.RcptName.Text    := MailTo;
    SmtpCli1.HdrSubject      := MailSubject;
    SmtpCli1.MailMessage.Text := MailMsg;

    if SmtpCli1.Connect then
        begin
              Result := SmtpCli1.Mail;
              SmtpCli1.Quit;
        end;
end;

procedure SendSMS;
begin
    if not SendSMSMailMessage(\'note.sonofon.dk\', \'20xxxxxx@note.sonofon.dk\', \'morten_s@the.net\', \'Alarm\', \'En eller anden besked\') then LogEnFejl;
Avatar billede morten_s Nybegynder
03. januar 2002 - 19:32 #2
Jeg har noget bedre kode et eller andet sted hvis du får brug for det
Avatar billede cool-wil Nybegynder
03. januar 2002 - 19:35 #3
er det ikke noget med at man ikke kan det mere? sende sms via mail?

jeg vil da gerne have den bedre kode, hvis det ikke er for meget forlangt:-)

wil/
Avatar billede morten_s Nybegynder
03. januar 2002 - 19:37 #4
Her fandt jeg det, det er \"Motoren\" til et program som gennemløber en
alarmdatabase og sender SMS til den rette person når der er en alarm

Håber du kan bruge det

procedure TfmAlarmSender.TimerDBRequestTimer(Sender: TObject);
var
  AppNo, AppName, AlType : String;
  AlDate : TDate;
  AlTime : TTime;
  AlText : String;
  QueryUser : TmySQLQuery;

begin
  if Start and not SendingMail then
    begin
    with QueryCheckAlarms do
    begin
      Close;
      SQL.Text := \'SELECT aldb.*, logintno.IntNo, logintname.IntName \'+
                          \'FROM aldb \'+
                          \' INNER JOIN intersec AS logintno \'+
                          \'  ON (aldb.AppNo = logintno.ID) \' +
                          \' INNER JOIN intersec AS logintname \'+
                          \'  ON (aldb.AppNo = logintname.ID) \' +
                          \' WHERE AlDate >= \'\'\' + LastQueryDate + \'\'\' AND AlTime >= \'\'\' + LastQueryTime + \'\'\'\';
      MessageMemo.Lines.Add(sql.text);
  // ShowMessage(Sql.Text);
      Open;
      Inc(DBRequest);
      StatusBar1.Panels[1].Text := \'DB requests: \' +IntToStr(DBRequest);
      while not Eof do
      begin
        AppNo := FieldByName(\'intno\').AsString;
        AppName :=  FieldByName(\'intname\').AsString;
        AlText := FieldByName(\'AlText\').AsString;
        MessageMemo.Lines.Add(AppNo+ \' \' +AppName+ \' \' +AlText);
        NMSMTP1.Host := lEditMailServer.Text;
        with NMSMTP1 do
        begin
          QueryUser := TmySQLQuery.Create(Self);
          QueryUser.Database := FalcoDB;
          QueryUser.Close;
          QueryUser.SQL.Text := \'SELECT * FROM users WHERE Id = \'+IntToStr(IdSelectedUser);
          QueryUser.Open;
          while not QueryUser.Eof do
          begin
            if not NMSMTP1.Connected then
            begin
              try
                NMSMTP1.Connect;
              except
                  on Exception do
                ShowMessage(\'Invalid Pop Mail Host IP Adress\');
              end;
            end;
            if Connected then
            begin
              SendingMail := True;
              ClearParameters;
              PostMessage.Body.Clear;
              PostMessage.FromAddress := lEditFromMailadr.Text;
              PostMessage.FromName := lEditMailFromName.Text;
              PostMessage.ToAddress.Add(QueryUser.FieldByName(\'SMSPhoneNo\').AsString +\'@\'+
                                        QueryUser.FieldByName(\'SMSAdr\').AsString);
              PostMessage.Subject := lEditMailSubject.Text;
              Memo1.Clear;
              Memo1.Lines.Add( QueryUser.FieldByName(\'SMSPhoneNo\').AsString +\'@\'+
                                        QueryUser.FieldByName(\'SMSAdr\').AsString);
              Memo1.Lines.Add(AppNo+ \' \' +AppName+ \' \' +AlText);
              PostMessage.Body.AddStrings(Memo1.Lines);
              SendMail;
              Application.ProcessMessages;
            end
            else
              ShowMessage(\'fail to sent\');
            QueryUser.Next;
          end; //while not QueryUser.Eof do
          QueryUser.Free;
        end;
        Next;
      end; //while not QueryCheckAlarms.Eof do
    end; //with QueryCheckAlarms do
    if NMSMTP1.Connected then
      NMSMTP1.Disconnect;
    DateTimeToString(LastQueryDate,\'yyyy-mm-dd\',Now);
    DateTimeToString(LastQueryTime,\'hh:nn:ss\',Now);
  end;
end;
Avatar billede cool-wil Nybegynder
03. januar 2002 - 19:42 #5
det var fandme en advanceret kode*gg*

tror lige jeg prøver den første, først:-)

wil/
Avatar billede ziron Nybegynder
03. januar 2002 - 21:05 #6
cool-wil det med at man ikke kan sende til mobil-emil er rigtig nok. det er ihvertfald meget tæt på at det stopper.

/ZIRON
Avatar billede morten_s Nybegynder
03. januar 2002 - 21:07 #7
Ja men det er kun det her du skal bruge

if Connected then
            begin
              SendingMail := True;
              ClearParameters;
              PostMessage.Body.Clear;
              PostMessage.FromAddress := lEditFromMailadr.Text;
              PostMessage.FromName := lEditMailFromName.Text;
              PostMessage.ToAddress.Add(QueryUser.FieldByName(\'SMSPhoneNo\').AsString +\'@\'+
                                        QueryUser.FieldByName(\'SMSAdr\').AsString);
              PostMessage.Subject := lEditMailSubject.Text;
              Memo1.Clear;
              Memo1.Lines.Add( QueryUser.FieldByName(\'SMSPhoneNo\').AsString +\'@\'+
                                        QueryUser.FieldByName(\'SMSAdr\').AsString);
              Memo1.Lines.Add(AppNo+ \' \' +AppName+ \' \' +AlText);
              PostMessage.Body.AddStrings(Memo1.Lines);
              SendMail;
              Application.ProcessMessages;
            end
            else
              ShowMessage(\'fail to sent\');
            QueryUser.Next;
          end; //while not QueryUser.Eof do
Avatar billede martinlind Nybegynder
03. januar 2002 - 21:27 #8
Der findes nogle gratis gateways i DK, søg på SMS på www.google.com så finder du dem, kan ikke lige husk hvem
Avatar billede cool-wil Nybegynder
03. januar 2002 - 22:48 #9
kigger lige martinlind

surt at de lukker den fede sms mulighed ned..det er sq kun for at tjene penge på lortet
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester