SMS Component for delphi

hi there... are there any component, vcl, library or somehing to send sms from delphi. im using a library for .net currently buy it have problem running on windows 7 so im planing to rewrite on delphi. an open source would be very gladful but pay software is okay. Thank you very much
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

You typically need an account to send SMS messages - this is not free. There are several places where you can get an account, and then use an API to send SMS messages. The API is typically exposed via the web, as a SOAP, REST or plain HTTP service. I've written an article that shows code snippets to connect to two different SMS providers using Delphi for Win32 as well as Delphi for .NET code.

See for my website on SMS sending with Delphi, using Kapow! or Molly as providers (but there are several more, no doubt).

Here's an example of the Delphi code to call the API, taken from the article at

    function SendSMS(const Username, Password, Originator, Recipients,
      Message: String; Gateway: integer = 1): String;
      URL = '' +
      ResponseSize = 1024;
      hSession, hURL: HInternet;
      Request: String;
      ResponseLength: Cardinal;
      hSession := InternetOpen('DrBob42', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
        Request := Format(URL,[Username,Password,Originator,Recipients,Gateway,HttpEncode(Message)]);
        hURL := InternetOpenURL(hSession, PChar(Request), nil, 0,0,0);
          SetLength(Result, ResponseSize);
          InternetReadFile(hURL, PChar(Result), ResponseSize,
          SetLength(Result, ResponseLength)

Open in new window

mucicidAuthor Commented:
wow... thanks ebob42, i shuld try that. but what i need know is send sms trough a gsm modem. how about that ?
Ah, sorry, I didn't realise that's what you were looking for. I don't know how to use a gsm modem, sorry. I've used the SMS gateway services for many years now, much easier ;-)
MSSPs - Are you paying too much?

WEBINAR: Managed security service providers often deploy & manage products from a variety of solution vendors. But is this really the best approach when it comes to saving time AND money? Join us on Aug. 15th to learn how you can improve your total cost of ownership today!

mucicidAuthor Commented:
its ok... i've got a new idea from you anyway. can i receive sms using your that molie service ?
You can specify a number that they can use to answer to (you can even specify a name of some other string as "sender"), so they can answer to it.

There is no API from mollie to receive SMS messages, but there are other services that can help with that. I typically send the SMS messages to my own phone to let myself know that someone purchased another book or license from me while I was away (on holiday for example).
I think you can use AT Command. Initially, It is a collection of instruction to develop communication between computer-modem. I use nokia 3220 as GSM modem and cable data MA-8620E (usb port). By this way of interfacing, the cable data will convert to serial async communication, thus the data that come from/in handphone can be digest by hyperterminal.

Now, you can use TComport component to create as like hyperterminal in your delphi application.
It's free:
Finally you can feel free to communicate with your GSM Modem by your delphi program such as: read sms, send sms, phonebook management, calling management etc.

some important AT command:

1.      AT+CGMM      read  number type of your gsm modem
2.      AT+CPBR=3      read data Phone book number 3
3.      AT+CGSN      show IMEI / serial number
4.      AT+CSCS="GSM"; +CMGR= 2      read sms no <index>, CSCS= select char type
5.      Nokia:
ATD[02723113931]; +&c[0]
ATD[02723113931]; &c0      to Call a phone number (0272) 3113931.
+&c[0] : carrier always ON
6.      AT+CHUP      Hung up (stop call)
7.      Nokia: AT+CMGL
Siemen: AT+CMGL=4      display all sms that exist in ur hp
8.      AT+CMGD=1      delete SMS number 1
9.      AT+CMGR=1      read SMS indek 1 di memori Hp

below a chunk of my code to send sms with TComport:

procedure TFrmSmsServer3.CBtnSendSMSlClick(Sender: TObject);
var str : string;
 str := 'AT+CMGS=[recipient number]';
 Str := Str + #13#10;

// sometime need delay at this steps
 str := MemoContentSMS.Text + #26;
 Str := Str + #13#10;

Hope can help you. Bless wishes.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mucicidAuthor Commented:
thanks this is very helpful.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Wireless Networking

From novice to tech pro — start learning today.