You can send messages over Bitcoin with CoinSpark (an OP_RETURN based protocol).
http://www.coindesk.com/coinspark-blockchain-notarized-messaging/Messages are not stored on the Bitcoin blockchain itself but are sent out-of-band via message delivery servers. When you send a message with a bitcoin transaction, the blockchain only stores enough details for the recipient to retrieve the message and ensure it is valid. CoinSpark runs some community servers but you can run your own server and modify it to meet your needs as the code is open-source.
Get started by downloading SparkBit, a lightweight SPV wallet based on MultiBit:
http://www.coinspark.orgDevelopers can find open-source libraries and docs here:
http://coinspark.org/developers/messages-introduction/