No longer under active development
py-imessage is a library to send iMessages from your Mac computer (it does not work on Windows/Linux). It was originally used to build an API for iMessages; however, Apple doesn't support third-parties using iMessage over a few hundred marketing messages per day.
Run the following commands on the terminal
pip install py-imessage
# Disable system integrity protection in order to allow access to chat.db
csrutil disableIf running csrutil disable doesn't work. Try this stackoverflow post
from py_imessage import imessage
import sleep
phone = "1234567890"
if not imessage.check_compatibility(phone):
print("Not an iPhone")
guid = imessage.send(phone, "Hello World!")
# Let the recipient read the message
sleep(5)
resp = imessage.status(guid)
print(f'Message was read at {resp.get("date_read")}')Send a message to a new or an existing contact!
Args
Phone | ten-digit phone number of string type format XXXXXXXXXXX i.e. "1234567890"
Response
Message | The message you plan to send. i.e. "Hi!"
| Type | Description |
|---|---|
| string | GUID unique to the message (used for checking on status) |
Check whether a message you sent has been delivered and read (if read receipts turned on).
Args
Guid | guid returned from sending a message
Response
| Field | Type | Description | Sample |
|---|---|---|---|
| guid | string | guid that was passed in to the function | "3A146100-D269-4F35-BDB4-EB2FF7DBDF0F" |
| date_submitted | datetime | date message was submitted | "Sun, 12 Apr 2020 05:46:48 GMT" |
| date_delivered | datetime | date message was delivered to recipient's phone | "Sun, 12 Apr 2020 05:46:49 GMT" |
| date_read | datetime | date message was read on recipient's phone | "Sun, 12 Apr 2020 05:47:38 GMT" |
Check whether a phone number is registered to an iPhone or an Android device. NOTE: This method is exceptionally slow, so you should cache the response.
Args
Phone | ten-digit phone number of string type format XXXXXXXXXXX i.e. "1234567890"
Response
| Type | Description |
|---|---|
| boolean | Whether number supports receiving iMessages |
Please create an issue. Or feel free to add a PR!