Отправка SMS (Delphi)
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Отправка SMS (Delphi)
Есть ли возможность отправить смс прямо из программы?
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Можно, но при условии что программа работает с подключенным к компьютером телефоном или использует онлайн-сервис отправки sms. То есть без использования сторонних сервисов не обойтись.
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Телефон - не вариант. А вот насчёт сервисов слышал, что можно как-то через электронную почту отправить или есть ещё способы?
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Через почту не у всех операторов. Есть другие способы: использовать веб-компоненты современных версий delphi и связываться с сервисами отправки sms, подделывать заголовки ответа сервера и просто отправлять через программу (не рекомендуется, заголовки могут измениться в любое время), использовать iframe для отображения в программе страницы отправки sms с сайта сервиса.
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Только вот на всех сайтах нужно вводить капчу, а мне нужно чтобы в программе вводился только номер телефона и текст.
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Тогда остаются только sms-шлюзы (то что через email). Но такая услуга может быть не у всех операторов, может быть платной, может быть отключена у абонентов оператора
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Ну а как это сделать, что за шлюзы нужно использовать?
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Я их адреса так и не нашёл. Делается это путём отправки email (например 9190000000@mts.ru) из Delphi.
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
А как отправить и зачем тогда шлюзы если можно так (например 9190000000@mts.ru) отправить?
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Отправленное таким образом письмо поступает на шлюз оператора. Если эта услуга не подключена абонентом то просто вернётся сообщение о неправильном адресе. Если услуга включена, то абонент получит сообщением с предупреждением что сообщение отправлено с компьютера и может быть спамом.
Если код отправки нужен выложу.
Если код отправки нужен выложу.
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Выложи пожалуйста. А вот интересно каким образом работают сайты на которых можно вписать номер отправителя?
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Посмотрел один такой. Просто подгрузка информации, в том числе и капчи с сайта оператора, в зависимости от введённого номера.Maximus писал(а):А вот интересно каким образом работают сайты на которых можно вписать номер отправителя?
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Подгрузка какой информации? Ведь на сайтах операторов нет такой опции "замена номера отправителя".
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Сейчас я код перепроверю, а то интернет не вовремя отключился.
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Проверил код, email-сообщения отправляются нормально, но вот к примеру через шлюз mts ничего не проходит, адреса других не нашёл. Выкладывать этот код или не нужен?
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
Давай, посмотрю.
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
1. Добавить на форму компоненты TidSMTP и TidMessage из группы Indy.
2. Код инициализации подключения к SMTP-серверу
3. Код отправки
2. Код инициализации подключения к SMTP-серверу
Код: Выделить всё
try
IdSMTP1.AuthType:=satDefault;
IdSMTP1.Host:='box.vrn.ru'; //любой SMTP
IdSMTP1.Port:=25;
IdSMTP1.Username:=''; //логин
IdSMTP1.Password:=''; //пароль
IdSMTP1.Connect;
except
on e:Exception do
end;
Код: Выделить всё
var
msg:TIdMessage;
.......
try
msg:=TIdMessage.Create(nil);
msg.Body.Add('test mail'); //text
msg.Subject:='header message'; //заголовок
msg.From.Address:=sender_mail@mail.ru'; //адрес отправителя
msg.From.Name:='name'; //имя отправителя
msg.Recipients.EMailAddresses:='9190000000@sms.mts.ru';
msg.IsEncoded:=True;
IdSMTP1.Send(msg);
msg.Free;
IdSMTP1.Disconnect;
except
on e:Exception do
begin
msg.Free;
IdSMTP1.Disconnect;
end;
end;
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
А вот здесь, логин и пароль от чего? И что такое SMTP?
Код: Выделить всё
IdSMTP1.Host:='box.vrn.ru'; //любой SMTP
IdSMTP1.Port:=25;
IdSMTP1.Username:=''; //логин
IdSMTP1.Password:=''; //пароль
- Andrey
- Администратор
- Сообщения: 2345
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
SMTP - протокол исходящей почты. SMTP-сервер - сервер, который отправляет почту.
Логин и пароль соответственно от учётной записи SMTP-сервера. Из сети freedom можно использовать адрес box.vrn.ru без авторизации (с внешки не работает). Можно использовать smtp.mail.ru, smtp.gmail.com, smtp.rambler.ru и другие (нужно иметь почтовые аккаунты на этих серверах).
Логин и пароль соответственно от учётной записи SMTP-сервера. Из сети freedom можно использовать адрес box.vrn.ru без авторизации (с внешки не работает). Можно использовать smtp.mail.ru, smtp.gmail.com, smtp.rambler.ru и другие (нужно иметь почтовые аккаунты на этих серверах).
- Maximus
- Супермодератор
- Сообщения: 1507
- Зарегистрирован: 02 фев 2012, 11:42
- Откуда: Воронеж
- Контактная информация:
Re: Отправка SMS (Delphi)
А из какой именно группы Indy? У меня там сервер, клиент, intercepts, I/O Handlers, Misk.