Форум: "Сети";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизОтправка смс (МегаСлон, МТС, БиЛайн из программы Делфи Найти похожие ветки
← →
_intruder (2004-11-05 09:27) [0]Собственно сабж, самое смешное, что ранее я это делал для Делфи 6, но сырцы потерял, а теперь поставили задачу, и что - то запамятовал как мне сделать это...
-------------------------------------
Программисты не умирают, они теряют память...
← →
Delphin © (2004-11-05 18:15) [1]Есть два варианта:
1) Отправлять через смс шлюзы (<Код><Номер><Шлюз>)
2) Отправлять через сайт Опсос"a
← →
S@shka © (2004-11-05 18:17) [2]:))))))
без комментариев
← →
Delphin © (2004-11-05 18:23) [3]Вот код для отправки сообщений через шлюзы:
(он разбивает весь текст введённый в мемо на куски и отправляет:)
procedure TForm1.spSkinButton2Click(Sender: TObject);
Var
I,A,Z:Integer;
So:String;
begin
IF (Form6.spSkinCheckRadioBox11.Checked)AND(Form4.spSkinListBox1.Items.Count>0)
Then MS:=True;
IF MS=True Then Edit3.Text:="MultiSend";
A:=0;
B:=0;
Checker.Execute;
I:=Memo1.GetTextLen;
While I>=130 Do Begin
I:=I-130;
Memo1.SelStart:=A;
Memo1.SelLength:=130;
IF Form6.spSkinCheckRadioBox5.Checked
Then Begin
Inc(MsgNum);
IdMessage1.Body.Add(Memo1.SelText+" Msg "+IntToStr(MsgNum)+" of "+IntToStr(X));
IF MsgNum=X Then MsgNum:=0;
End
Else
IdMessage1.Body.Add(Memo1.SelText);
IF (Form6.spSkinCheckRadioBox6.Checked)AND(Form6.spSkinCheckRadioBox8.Checked)
Then IdMessage1.Body.Add(Form6.spSkinEdit1.Text);
Z:=0;
IF MS=TRue Then Begin
For Z:=0 To Form4.spSkinListBox1.Items.Count-1 Do Begin
Form4.spSkinListBox1.ItemIndex:=z;
NTS:=Form4.spSkinListBox1.Items[Form4.spSkinListBox1.ItemIndex];
Send.Execute;
End;
ClearH.Execute;
End
Else Begin
Send.Execute;
ClearH.Execute;
end;
End;
Inc(B);
A:=A+130;
IF I>0 Then Begin
Memo1.SelStart:=A;
Memo1.SelLength:=I;
IF Memo1.GetTextLen<=130 Then Begin
Memo1.SelStart:=0;
Memo1.SelLength:=130;
End;
IF Form6.spSkinCheckRadioBox5.Checked
Then Begin
Inc(MsgNum);
IdMessage1.Body.Add(Memo1.SelText+" Msg "+IntToStr(MsgNum)+" of "+IntToStr(X));
IF MsgNum=X Then MsgNum:=0;
End
Else
IdMessage1.Body.Add(Memo1.SelText);
IF (Form6.spSkinCheckRadioBox6.Checked)AND(Form6.spSkinCheckRadioBox8.Checked)
Then IdMessage1.Body.Add(Form6.spSkinEdit1.Text);
Z:=0;
IF MS=TRue Then Begin
For Z:=0 To Form4.spSkinListBox1.Items.Count-1 Do Begin
Form4.spSkinListBox1.ItemIndex:=z;
NTS:=Form4.spSkinListBox1.Items[Form4.spSkinListBox1.ItemIndex];
Send.Execute;
End;
ClearH.Execute;
End
Else
Send.Execute;
ClearH.Execute;
IdMessage1.Clear;
IF X>0 Then X:=1;
End;
end;
procedure TForm1.SendExecute(Sender: TObject);
Var
S:String;
begin
Try
Connection.Execute;
IF Not IdSmtp1.Connected
Then
Connection.Execute;
IF (B=X-1)And(Form6.spSkinCheckRadioBox6.Checked)And(Form6.spSkinCheckRadioBox7.Checked)
And(Not Form6.spSkinCheckRadioBox8.Checked)
Then
IdMessage1.Body.Add(Form6.spSkinEdit1.Text);
IdMessage1.From.Name:=SEdit1.Text;
IdMessage1.From.Address:=Edit2.Text;
IF Ms<>True Then Begin
S:=Copy(Edit3.Text,1,2);
Case StrToInt(S) of 95,96,97,98,67,68,60,59,99,82:
IdMessage1.Recipients.EMailAddresses:="+371"+Edit3.Text+"@sms.tele2.lv";
Else
IdMessage1.Recipients.EMailAddresses:="+371"+Edit3.Text+"@smsmail.lmt.lv";
End;
End
Else
Begin
S:=Copy(NTS,1,2);
Case StrToInt(S) of 95,96,97,98,67,68,60,59,99,82:
IdMessage1.Recipients.EMailAddresses:="+371"+Edit3.Text+"@sms.tele2.lv";
Else
IdMessage1.Recipients.EMailAddresses:="+371"+Edit3.Text+"@smsmail.lmt.lv";
End;
End;
IdMessage1.Subject:=EDit4.Text;
IdSmtp1.Send(IdMessage1);
Finally
IdSmtp1.Disconnect;
end;
end;
procedure TForm1.ConnectionExecute(Sender: TObject);
begin
Try
IF Form5.SpSkinCheckRadioBox1.Checked Then Begin
IdSmtp1.AuthenticationType:=AtNone;
IdSmtp1.Username:=Form5.spSkinEdit2.Text;
IdSmtp1.Host:=Form5.spSkinEdit1.Text;
IdSmtp1.Connect();
Form5.spSkinStdLabel5.Caption:="Connected";
End;
Except
MessageDlg("Not Connected",mtError,[mbok],0);
Form5.spSkinStdLabel5.Caption:="Error, Not connected";
ConnectError.Execute;
End;
Try
IF Form5.SpSkinCheckRadioBox2.Checked Then Begin
IdSmtp1.AuthenticationType:=AtLogin;
IdSmtp1.Username:=Form5.spSkinEdit2.Text;
IdSmtp1.Host:=Form5.spSkinEdit1.Text;
IdSmtp1.Connect();
Form5.spSkinStdLabel5.Caption:="Connected";
End;
Except
MessageDlg("Not Connected",mtError,[mbok],0);
Form5.spSkinStdLabel5.Caption:="Error, Not connected";
ConnectError.Execute;
End;
end;
procedure TForm1.CheckerExecute(Sender: TObject);
Var
I:Integer;
begin
I:=Memo1.GetTextLen;
IF I<=130 Then
X:=1;
While I>=130 Do Begin
I:=I-130;
Inc(X);
IF I<130 Then
Inc(X);
End;
end;
Писал давно и код корявый, но работоспособный :)
← →
Сергей Г (2004-11-05 18:47) [4]см: http://sergygoodkov.narod.ru там есть и исходники под Delphi 6
← →
Piter © (2004-11-05 21:13) [5]Этот вопрос надо определенно в FAQ включить...
← →
intruder © (2004-11-10 12:53) [6]вопрос Сергею, как я понял смс отправляются на почтовый шлюз, его как получить для моего региона (Архангельская область)
← →
Knight © (2004-11-10 19:31) [7]У нас на Северозападном Мегафоне, говорят, такой возмоности нет... сам сколько сайтов перерыл.
← →
Сергей Г (2004-11-12 08:59) [8]>intruder © (10.11.04 12:53) [6]
>вопрос Сергею, как я понял смс отправляются на почтовый шлюз, >его как получить для моего региона (Архангельская область)
Все очень просто. Все зависит от оператора сотовой связи:
Нужно связаться со справочной службой Вашего сотового оператора и выяснить как он предоставляет доступ к почтовому ящику.
Для примера:
Мегафон Повольжье - включает его сразу при подключении
Би Лайн - делается дополнительный запрос
Про остальные сказать трудно
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.05 c