emitSMS plugin for Mac OS X Address Book.app

In the distant past, the Address Book app in Mac OS X Tiger could send mobile SMS messages directly from within the app, if you paired your mobile phone with your Mac via Bluetooth. Along came Leopard, and the feature mysteriously vanished without trace or explanation, and hasn’t reappeared since. Missing the feature, I found a roundabout replacement in the emitSMS dashboard widget. It offers SMS sending via Bluetooth and can also search the Address Book for phone numbers. Having seen that the source code for emitSMS was released, I adapted the backend into a plugin for Address Book.app to provide the missing former functionality.

Download, unzip and place the plugin in /Library/Address Book Plug-Ins/ and restart Address Book. You should then be able to click on a phone number on a person’s card and select “Send SMS via Bluetooth” to send them a SMS.

Screen shot of emitSMS Address Book pluginThe source code is also available, under the same MIT license as the original emitSMS source code.

Notes

The plugin should be compatible with Address Book in Leopard and Snow Leopard.

To use the plugin (or the emitSMS widget, in fact) you need to set up a virtual serial port over Bluetooth to your phone. This will normally be set up automatically by OS X when you pair your phone with your Mac, but the serial ports can be edited in the Bluetooth panel in System Preferences if necessary. (edit: No longer necessary in the latest version, all you need to do is pair your phone with your Mac).

After you select a port to use in the pop-up menu, it will test the port for SMS sending capabilities. The port will only be usable if the test succeeds. Some phones seem to be a little flaky when communicating via Bluetooth and require the test to be run a few times before it can establish a connection successfully. If it fails initially, try clicking on the port again.

If ‘Long Messages’ is not enabled your messages will be limited to 160 characters (or 70 characters if you use symbols outside the standard GSM set, e.g. ^ ). Not all phones support the sending of long messages (actually splitting the message into several SMSs). Additionally, not all phones support requesting delivery receipts.

In general, if your phone works with the emitSMS dashboard widget, it should work with this plugin as the same underlying method is used to send the SMSs.

62 Responses to “emitSMS plugin for Mac OS X Address Book.app”

  1. Silvester says:

    Is there a way to do this with an iphone ?

  2. Eric says:

    Did not work for me on my Debranded SE TM506. If you can get full functionality like it was in the old days you will make a lot of people really happy. I can select a serial port for my phone, it passes the test, I send and it says is was successful but I am unable to send myself a text.

  3. Alan says:

    Hi, I tried it with SL 10.6.1 and N95 and got this:

    Port: Dial-Up Networking (only this option available)

    message: Test failed: got error reply “ERROR” to ATE0 command

    Many thanks,
    Alan

  4. Omar says:

    Does this work with the iPhone?

  5. sigmaris says:

    To all who asked about the iPhone: I don’t think it is possible to use bluetooth to send SMS through the iPhone, it doesn’t support the required Bluetooth profiles. In fact, I think this was connected with the decision to remove the feature in Address Book in Leopard – Apple didn’t want to have a feature in their OS which showed up the lack of Bluetooth support in their flagship phone product.

  6. Matt says:

    I don’t get “Send SMS via Bluetooth” to pop up in 10.5.8.

  7. Matt says:

    I tried your other version and Send SMS appears, but none of the ports work. I could not the widget to work either.

  8. Stephen says:

    This is brillant! I could never get the built-in functionality to work with my old SE (P910) but this works brilliantly with my p1i.

    Any chance of a solution to send to multiple recipients @ once?

    • sigmaris says:

      The emitSMS dashboard widget can send to multiple recipients, I’m not intending to put this functionality into the address book plugin as the plugin system is designed to only operate on one contact at a time.

      • Johannes says:

        You said the emitSMS dashboard widget can send to multiple recipients? I cannot figure out how – could you explain? thank you, Johannes

        • sigmaris says:

          I was pretty sure it supported several phone numbers in the recipient box, separated by commas, but I can’t confirm this as I’ve lost the source code and no longer have a phone that works with the widget (got an iPhone :/) sorry. Give it a try and see if it works, anyway.

          • Johannes says:

            Hm, this is what I tried already (and I also tried semicolon, dot…) but none of it worked. I guess the emitSMS widget simply doesn’t support multiple recipients. Thanks anyways! Johannes

  9. Aariq says:

    I get an error that says “Test failed: got reply ‘ERROR’ to AT + CMGS” Does that just mean this feature doesn’t work with my phone?

    I have Snow Leopard and some sort of old-ish Samsung phone (don’t know what model) Verizon is my carrier.

    • sigmaris says:

      Unfortunately it looks like your phone may not support SMS sending via the GSM commands, so it probably isn’t compatible with this plugin. If you had the model of the phone it might be possible to find out for sure.

  10. [...] ??????. ??????? ??? ?????? ?? ???????????. ?? ???? ?? ???????????? ?? ????? ????????????, ? iPhone ?????? [...]

  11. Max says:

    Slightly confused by the install instructions – I’ve unzipped, should I place the whole of the bundle in the >Library > AddressBook etc or drag only the plugin there?

    It doesn’t appear to work with either method with my SE902 and I really would love to get this functionality back!

    • sigmaris says:

      You need to place the whole ‘emitSMSAddressBookPlugin.bundle’ in /Library/Address Book Plug-Ins/.

      • sigmaris says:

        I’ll have to find an N95 to test with, so far i’ve only tested it with Sony Ericsson phones. In the meantime, could you replace the plugin with the version here:
        http://sigmaris.info/files/emitSMSAddressBookPlugin.bundle.debug.zip
        and send me the file ‘ABSMSPlugin.log’ that it creates in your home directory? You can e-mail it to sigmaris (at) gmail.com.
        I’d be curious to know if your phone works with the original emitSMS dashboard widget, too.

      • Max says:

        Thanks it now works – I was installing it in the User > Library > Address Book > etc by mistake.

      • Max says:

        Hi I’ve found a problem and I have a request. The two are linked essentially. Although I can run AddressBook and send an SMS I can send only one. Subsequent attempts are constantly stuck in trying to send. The SE 902 has two connections available and the outcome is the same using either. I can relaunch AddressBook after a few minutes and succeed (for one attempt) but that’s inconvenient.

        On to the request – the plug-in gets stuck in a constant attempt to send (if not restarted) and cancelling the attempt results in all the text being lost. Is it possible to retain the message on a cancel?

        Looking forward to a solution to allow successive uses as this is so useful and takes me back to 10.4 SMS heaven ;)

  12. Biker says:

    It works nice with my Nokia 3109c but after the message is sent it is required to click on the ‘Cancel’ button.

  13. ottid888 says:

    Same here, it sends out fine but the status still says “sending” but it has already sent out. you have to click the cancel button. doesn’t know how to refresh it self. but if i send using the dashboard widget, no problem. it’ll say sent. :D

  14. Mono says:

    Hello there! I am trying to use it with a Nokia N70. So far I see the “Send SMS using bluetooth” popup, it seems to recognize the phone the first time, but when I type a message and click “send” it gets stcked in the “sending sms” stadium… any ideas?
    Cheers and thanks a a lot for this plugin!

  15. [...] (96KB), expand the zip file, and then drop it in /Library/Address Book Plug-Ins. You can find more instructions and usage notes on my [...]

  16. skyxs says:

    thanks a lot!
    the bug with deconnecting bluetooth is fixed in your newest version. works fine now!
    nokia 6300 and 10.6.2
    greetings
    skyxs

  17. bill says:

    Amazing that the iPhone won’t play nice. The amazement is on a similar level to what I experienced when I found this wonderful feature had been disabled in Leopard. More dismay then amazement I suppose.

  18. colinc says:

    Sony Ericsson K750i with Leopard 10.5.8 works a treat.
    Thank you very much for providing this plug-in, I have never got my phone to work with Address Book under Tiger or Leopard till now.

  19. Daniel says:

    Hi!
    Very nice tool but I got 1 problem.

    All my phonenumbers are formatted in the following format:
    +49-179-xxxxxxxx
    +49 = 0049 for Germany
    - delimiter
    179 area-code for the mobile-Numbers
    - delimiter
    xxxx = phonenumber

    It seems that the tool does not convert these special chars …
    is ist possible to add these feature in future?

    Thanks alot!
    Marry X-Mas!

    Daniel

  20. hari says:

    Tried using with sony ericcision phone p1i and failed to send.

    failed as “+CMS ERROR: 322″

    I googled for the error code and it says
    322 = The memory/message storage is out of space.

    But I don’t have any memory or storage issue on mac or phone.

    So what would be the issue ??

    I also tried to use the debug version you had, but same error and NO log file was generated.
    “what is the location of the log file”

    thanks.

    • hari says:

      Hi,

      figured it out the reason for the 322 error code.

      It seems like this plugin is sending message via SIM (does’t make sense)

      my SIM card message was full.
      so I deleted some message. hence had room for SIM card messages to be stored.

      So now when i tried to send SMS via addressbook, vola… SMS sent and could receive it as well.

      I don’t understand why should SIM card messages being full or not matter.

      It doesn’t effect anything when i send SMS from mobile phone itself.

      Whenever you have time , could you please give a thought on it.

      thanks,
      hari.

    • sigmaris says:

      The log file should be generated as ABSMSPlugin.log in your home directory, if you can generate the logfile please send it to me and I’ll try and figure out the problem.

  21. hari says:

    another question. any way to identify the version of emitSMSAddressBookPlugin being used. ??

    • hari says:

      maybe just add “about” which would show the version when you left click on the phone , similar click to sending sms.

  22. kmingle says:

    I have been using emit sms for years on my mac and have recently come into several problems since i installed snow leopard. it worked for a while, but now it is completely useless and will stop on “opening connection” and freezes. i LOVE this widget, does anyone have an alternative solution? thanks so much!

  23. Tom says:

    This is brilliant and works perfectly with my Sony Ericsson. Many thanks.

  24. Gabriele says:

    Just tried with my Nokia N95, didn’t work out of the box, but this is an emitSMS fault, not plugin’s (I actually found this post searching on google for “emitsms n95, go figure… :-) ).
    In order to make it work I had to add a new serial port (modem) for my N95 here’s how to do it (I’m using OS X in italian, so I’m trying to translate the menus but may be incorrect):
    - open bluetooth preferences panel
    - select your phone (N95 or whatever you called it)
    - click on the small wheel and choose “edit serial ports”
    - click on the “+” sign
    - give a name to the new serial port, i called it “N95-Modem”
    - select “modem” as protocol
    - select “Dial-up networking” as service
    - leave everything else unchanged and save

    now when you open emitSMS or this plugin, you’ll have to choose “N95-Modem” as port.

    Hope this will save you some hassle…

    • tV says:

      thanks kindly for this info on pairing the phone as a Modem / Dial Up Networking port. EmitSMS had stopped working for me; for some reason it switched COM ports. thx..!

    • barathi says:

      great this just worked for me this is really great thanks thanks thanks…………

  25. yeah says:

    nice one man!

  26. Hertely says:

    Amazing! Great job!
    Thank you soooo much!

  27. Ranelaghman says:

    Hi and many thanks for your efforts.
    I can’t get the plugin to work.
    When I download your plugin it comes with a .bundle extension. I changed this to a .zip and then used unarchiver to unzip. The resulting contents folder contained a number of items including emitSMSAddressBookPlugin I put this in the /Library/addressbook plugins folder and restarted address book but to no avail.
    Can you point me in the right direction?
    Many thanks

    • sigmaris says:

      Hi, if you have a .bundle folder that means it’s already unzipped. Your web browser is probably automatically unzipping the file that is downloaded for you. To make the plugin work, put the entire .bundle folder, with the Contents subfolders inside it, into /Library/Address Book Plug-Ins. Hope this helps.

  28. tsiak says:

    SNOW LEOPARD & Sony ericson works!

  29. Pinky says:

    Thanks – been using the emitSMS widget for some time to amaze friends when I reply to their texts with War & Peace replies in less than a minute but it sometimes takes several attempts for the phone to communicate successfully and send the message. Just tried it after installing this and it worked first time using Address Book in Snow Leopard 10.6.2 with a Sony Ericsson w880i, so it’s a useful alternative method to use.

    There wasn’t a /Library/Address Book Plug-Ins folder on my mac, so I just created one.

  30. Victor Toh says:

    Hi, I’m desperately trying to get this to work, but it says got ‘ERROR’ to AT+CMGS repeatedly. I’m using a HTC Touch Diamond, and it definitely has the necessary bluetooth profiles. I turned off Activesync and turned on Serial service on the but it still doesn’t work. Can you give some suggestions to try?

  31. Marcell says:

    Hey, this works flawlessly with my Nokia E51. Thanks a million for this. In case you decide to further develop the code, let me know. I’ll be a grateful user of the new version too. :)

  32. Roger says:

    Hi,

    i don’t get to see the context menu entry, so I can’t use this nice tool at all. Any hints?

    Snow Leo 10.6.3.

    The debug version doesn’t create a log file… Other plugins work fine.

    • sigmaris says:

      If you don’t see the context menu, it sounds like the plugin might not be installed correctly? Inside /Library/Address Book Plug-Ins/ you should have a bundle named “emitSMSAddressBookPlugin.bundle” (this should appear as a single item with the white “lego brick” icon). Try downloading the plugin and installing it again, and restarting Address Book.
      Also note that you seem to have to left-click on the label “home” (or “work”, “mobile” etc) next to the contact’s number to get the menu to show up.

      • Roger says:

        Nothing at all happens… I guess its installed correct, ’cause google maps plugin and skype plugin in same folder work fine…

        Could my system language (german) be the problem?

        • Roger says:

          Just found the problem, send SMS works only for contacts in my local folder, not for contacts synced from exchange server… any other idea than copying all contacts?

          • sigmaris says:

            Hello – I have checked this out and it looks like it may be a problem in Address Book. I have several plugins including the SMS plugin that display in the context menu for phone numbers, and they all appear for contacts on my Mac but not for phone numbers of contacts from external directories. Plugins that operate on other fields like e-mail appear OK. I’d suggest reporting this bug to Apple since it seems to be a problem with Address Book that affects all plugins.

  33. [...] Gefunden habe ich es übrigens dort: emitSMS plugin for Mac OS X Address Book.app [...]

  34. YouDoMeIDoYou says:

    This is perfect! The plugin works like a charm. I’m currently using Snow Leopard 10.6.3 with my Sony Ericsson. Wonderful :)

  35. pchalla90 says:

    So I’m assuming this only works for phones on the GSM network? (AT&T, TracFone, T-Mobile?)

    I’m a Sprint customer…

    • sigmaris says:

      To be honest, I haven’t much information about Sprint/other CDMA phones, but I believe they can send SMS using Bluetooth commands. Whether or not they use exactly the same command set as GSM phones, I don’t know. You could try pairing your phone and attempting to use the plugin, and see if it works or not. Unfortunately I can’t do much testing with CDMA phones since I’m in Europe and everything is GSM here.

  36. Bene says:

    Very great work! Thanks a lot! Greats from Austria!

  37. daniele says:

    many thanks, I USE LEOPARD AND NOKIA 5230 AND IT WORKS !
    daniele

Leave a Reply