Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

Отправка смс (МегаСлон, МТС, БиЛайн из программы Делфи   Найти похожие ветки 

 
_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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
3-1103871030
Kabaev Sergey
2004-12-24 09:50
2005.01.30
PrintDBGridEh - проблемы с масштабом изображения


1-1105950102
andrey__
2005-01-17 11:21
2005.01.30
Преобразование ANSI строку в ASCII строку


3-1104146590
Otari
2004-12-27 14:23
2005.01.30
Query SQL command


3-1104062538
Alex_S
2004-12-26 15:02
2005.01.30
Странности DBGrid при работе с InterBase


4-1102497251
maxistent
2004-12-08 12:14
2005.01.30
Всё те же контакты COM a