Skip to content

Commit 6518e9d

Browse files
committed
Add getting started sample
1 parent 1a824d0 commit 6518e9d

File tree

3 files changed

+137
-1
lines changed

3 files changed

+137
-1
lines changed

mailjet_rest/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
requests.packages.urllib3.disable_warnings()
1313

1414

15-
def prepare_url(key: str):
15+
def prepare_url(key):
1616
"""Replaces capital letters to lower one with dash prefix."""
1717
char_elem = key.group(0)
1818
if char_elem.isupper():

samples/contacts_sample.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import json
2+
import os
3+
4+
from mailjet_rest import Client
5+
6+
7+
mailjet30 = Client(auth=(os.environ["MJ_APIKEY_PUBLIC"],
8+
os.environ["MJ_APIKEY_PRIVATE"]))
9+
10+
mailjet31 = Client(auth=(os.environ["MJ_APIKEY_PUBLIC"],
11+
os.environ["MJ_APIKEY_PRIVATE"]),
12+
version="v3.1")
13+
14+
15+
def create_contact():
16+
"""POST https://api.mailjet.com/v3/REST/contact"""
17+
data = {
18+
"IsExcludedFromCampaigns": "true",
19+
"Name": "New Contact",
20+
"Email": "[email protected]",
21+
}
22+
return mailjet30.contact.create(data=data)
23+
24+
25+
def create_contact_metadata():
26+
"""POST https://api.mailjet.com/v3/REST/contactmetadata"""
27+
data = {
28+
"Datatype": "str",
29+
"Name": "first_name",
30+
"NameSpace": "static"
31+
}
32+
return mailjet30.contactmetadata.create(data=data)
33+
34+
35+
def edit_contact_data():
36+
"""PUT https://api.mailjet.com/v3/REST/contactdata/$contact_ID"""
37+
id = "*********" # Put real ID to make it work.
38+
data = {
39+
"Data": [
40+
{
41+
"Name": "first_name",
42+
"Value": "John"
43+
}
44+
]
45+
}
46+
return mailjet30.contactdata.update(id=id, data=data)
47+
48+
49+
if __name__ == "__main__":
50+
result = edit_contact_data()
51+
print(result.status_code)
52+
try:
53+
print(json.dumps(result.json(), indent=4))
54+
except json.decoder.JSONDecodeError:
55+
print(result.text)

samples/getting_started_sample.py

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import json
2+
import os
3+
4+
from mailjet_rest import Client
5+
6+
7+
mailjet30 = Client(auth=(os.environ["MJ_APIKEY_PUBLIC"],
8+
os.environ["MJ_APIKEY_PRIVATE"]))
9+
10+
mailjet31 = Client(auth=(os.environ["MJ_APIKEY_PUBLIC"],
11+
os.environ["MJ_APIKEY_PRIVATE"]),
12+
version="v3.1")
13+
14+
15+
def send_messages():
16+
"""POST https://api.mailjet.com/v3.1/send"""
17+
data = {
18+
"Messages": [
19+
{
20+
"From": {
21+
"Email": "[email protected]",
22+
"Name": "Mailjet Pilot"
23+
},
24+
"To": [
25+
{
26+
"Email": "[email protected]",
27+
"Name": "passenger 1"
28+
}
29+
],
30+
"Subject": "Your email flight plan!",
31+
"TextPart": "Dear passenger 1, welcome to Mailjet! May the "
32+
"delivery force be with you!",
33+
"HTMLPart": "<h3>Dear passenger 1, welcome to <a href=\"https"
34+
"://www.mailjet.com/\">Mailjet</a>!<br />May the "
35+
"delivery force be with you!"
36+
}
37+
],
38+
"SandboxMode": True, # Remove to send real message.
39+
}
40+
return mailjet31.send.create(data=data)
41+
42+
43+
def retrieve_messages_from_campaign():
44+
"""GET https://api.mailjet.com/v3/REST/message?CampaignID=$CAMPAIGNID"""
45+
filters = {
46+
"CampaignID": "*****", # Put real ID to make it work.
47+
}
48+
return mailjet30.message.get(filters=filters)
49+
50+
51+
def retrieve_message():
52+
"""GET https://api.mailjet.com/v3/REST/message/$MESSAGE_ID"""
53+
_id = "*****************" # Put real ID to make it work.
54+
return mailjet30.message.get(_id)
55+
56+
57+
def view_message_history():
58+
"""GET https://api.mailjet.com/v3/REST/messagehistory/$MESSAGE_ID"""
59+
_id = "*****************" # Put real ID to make it work.
60+
return mailjet30.messagehistory.get(_id)
61+
62+
63+
def retrieve_statistic():
64+
"""GET https://api.mailjet.com/v3/REST/statcounters?CounterSource=APIKey
65+
\\&CounterTiming=Message\\&CounterResolution=Lifetime
66+
"""
67+
filters = {
68+
"CounterSource": "APIKey",
69+
"CounterTiming": "Message",
70+
"CounterResolution": "Lifetime",
71+
}
72+
return mailjet30.statcounters.get(filters=filters)
73+
74+
75+
if __name__ == "__main__":
76+
result = retrieve_statistic()
77+
print(result.status_code)
78+
try:
79+
print(json.dumps(result.json(), indent=4))
80+
except json.decoder.JSONDecodeError:
81+
print(result.text)

0 commit comments

Comments
 (0)