Chilkat2-Python
Chilkat2-Python
MedTunnel: Send Message with File Attachment
See more MedTunnel Examples
Demonstrates the MedTunnel SendMessage method to send a message with a file attachment to one or more recipients.Chilkat Chilkat2-Python Downloads
import sys
import chilkat2
success = False
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
http = chilkat2.Http()
# Implements the following CURL command:
# curl https://server.medtunnel.com/MedTunnelMsg/api/Message/SendMessage -X POST -k
# -F "ApplicationId=yourApplicationId" -F "LocationId=yourLocationId"
# -F "MedTunnelId=yourMedTunnelId" -F "MedTunnelPassword=yourMedTunnelPassword"
# -F "To=recipientsMedTunnelId"
# -F "Body=Test of SendMessage"
# -F "file1=@qa_data/jpg/starfish.jpg"
# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code
req = chilkat2.HttpRequest()
req.HttpVerb = "POST"
req.Path = "/MedTunnelMsg/api/Message/SendMessage"
req.ContentType = "multipart/form-data"
req.AddParam("ApplicationId","yourApplicationId")
req.AddParam("LocationId","yourLocationId")
req.AddParam("MedTunnelId","yourMedTunnelId")
req.AddParam("MedTunnelPassword","yourMedTunnelPassword")
req.AddParam("To","recipientsMedTunnelId")
req.AddParam("Body","Test")
success = req.AddFileForUpload2("file1","qa_data/jpg/starfish.jpg","application/octet-stream")
req.AddHeader("Expect","100-continue")
resp = chilkat2.HttpResponse()
success = http.HttpSReq("server.medtunnel.com",443,True,req,resp)
if (success == False):
print(http.LastErrorText)
sys.exit()
sbResponseBody = chilkat2.StringBuilder()
resp.GetBodySb(sbResponseBody)
jResp = chilkat2.JsonObject()
jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False
print("Response Body:")
print(jResp.Emit())
respStatusCode = resp.StatusCode
print("Response Status Code = " + str(respStatusCode))
if (respStatusCode >= 400):
print("Response Header:")
print(resp.Header)
print("Failed.")
sys.exit()
# Sample JSON response:
# (Sample code for parsing the JSON response is shown below)
# {
# "ReturnCode": 1,
# "ReturnCodeText": "Success",
# "Data": "{\"Id\":989432,\"FromUserId\":36990,\"FromMailBoxId\":36965, ... \"SendGlobalNotifications\":false}"
# }
# Sample code for parsing the JSON response...
# Use the following online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON
ReturnCode = jResp.IntOf("ReturnCode")
ReturnCodeText = jResp.StringOf("ReturnCodeText")
Data = jResp.StringOf("Data")
# Load the Data into another JSON object and parse..
jsonData = chilkat2.JsonObject()
jsonData.Load(Data)
jsonData.EmitCompact = False
print(jsonData.Emit())
# {
# "Id": 989448,
# "FromUserId": 36990,
# "FromMailBoxId": 36965,
# "FromUserType": 0,
# "FromUserName": "...",
# "FromUserFullName": "...",
# "FromUserAccountName": "...",
# "FromUserAccountTitle": "...",
# "ToUserId": 36990,
# "ToUserType": 1,
# "ToUserMailboxId": "36965",
# "ToUserName": "...",
# "ToUserFullName": "...",
# "EmailAddress": "",
# "Password": "",
# "Subject": "",
# "PatientMedTunnelId": "",
# "Body": "Test",
# "DateReceived": "4/29/2021 2:48:22 PM",
# "DisplayDateReceived": "04/29/2021 2:48 PM",
# "ViewCount": 0,
# "ViewedOn": "",
# "AttachmentCount": 1,
# "AttachmentNames": [
# {
# "MessageId": 989448,
# "Id": 424857,
# "Name": "starfish.jpg.35910fe9-4118-414c-a845-4d092ca6e784",
# "DisplayName": "starfish.jpg",
# "Size": 6229,
# "WasViewed": false,
# "ViewedOn": "",
# "ViewCount": 0,
# "Location": "Default"
# }
# ],
# "AllRecipients": [
# {
# "Id": 989448,
# "UserName": "...",
# "AccountId": 0,
# "AccountName": "...",
# "AccountTitle": "",
# "FirstName": "...",
# "LastName": "...",
# "EmailAddress": "",
# "LastSentOn": "",
# "SendCount": 0,
# "IsFavorite": false
# }
# ],
# "Status": 0,
# "ParentMessageId": 989448,
# "DistributionListId": 0,
# "DistributionListName": "",
# "BodyHistory": "",
# "ReadReceiptCallbackUrl": null,
# "SendGlobalNotifications": false
# }
Id = jsonData.IntOf("Id")
FromUserId = jsonData.IntOf("FromUserId")
FromMailBoxId = jsonData.IntOf("FromMailBoxId")
FromUserType = jsonData.IntOf("FromUserType")
FromUserName = jsonData.StringOf("FromUserName")
FromUserFullName = jsonData.StringOf("FromUserFullName")
FromUserAccountName = jsonData.StringOf("FromUserAccountName")
FromUserAccountTitle = jsonData.StringOf("FromUserAccountTitle")
ToUserId = jsonData.IntOf("ToUserId")
ToUserType = jsonData.IntOf("ToUserType")
ToUserMailboxId = jsonData.StringOf("ToUserMailboxId")
ToUserName = jsonData.StringOf("ToUserName")
ToUserFullName = jsonData.StringOf("ToUserFullName")
EmailAddress = jsonData.StringOf("EmailAddress")
Password = jsonData.StringOf("Password")
Subject = jsonData.StringOf("Subject")
PatientMedTunnelId = jsonData.StringOf("PatientMedTunnelId")
Body = jsonData.StringOf("Body")
DateReceived = jsonData.StringOf("DateReceived")
DisplayDateReceived = jsonData.StringOf("DisplayDateReceived")
ViewCount = jsonData.IntOf("ViewCount")
ViewedOn = jsonData.StringOf("ViewedOn")
AttachmentCount = jsonData.IntOf("AttachmentCount")
Status = jsonData.IntOf("Status")
ParentMessageId = jsonData.IntOf("ParentMessageId")
DistributionListId = jsonData.IntOf("DistributionListId")
DistributionListName = jsonData.StringOf("DistributionListName")
BodyHistory = jsonData.StringOf("BodyHistory")
ReadReceiptCallbackUrl = jsonData.StringOf("ReadReceiptCallbackUrl")
SendGlobalNotifications = jsonData.BoolOf("SendGlobalNotifications")
i = 0
count_i = jsonData.SizeOfArray("AttachmentNames")
while i < count_i :
jsonData.I = i
MessageId = jsonData.IntOf("AttachmentNames[i].MessageId")
Id = jsonData.IntOf("AttachmentNames[i].Id")
Name = jsonData.StringOf("AttachmentNames[i].Name")
DisplayName = jsonData.StringOf("AttachmentNames[i].DisplayName")
Size = jsonData.IntOf("AttachmentNames[i].Size")
WasViewed = jsonData.BoolOf("AttachmentNames[i].WasViewed")
ViewedOn = jsonData.StringOf("AttachmentNames[i].ViewedOn")
ViewCount = jsonData.IntOf("AttachmentNames[i].ViewCount")
Location = jsonData.StringOf("AttachmentNames[i].Location")
i = i + 1
i = 0
count_i = jsonData.SizeOfArray("AllRecipients")
while i < count_i :
jsonData.I = i
Id = jsonData.IntOf("AllRecipients[i].Id")
UserName = jsonData.StringOf("AllRecipients[i].UserName")
AccountId = jsonData.IntOf("AllRecipients[i].AccountId")
AccountName = jsonData.StringOf("AllRecipients[i].AccountName")
AccountTitle = jsonData.StringOf("AllRecipients[i].AccountTitle")
FirstName = jsonData.StringOf("AllRecipients[i].FirstName")
LastName = jsonData.StringOf("AllRecipients[i].LastName")
EmailAddress = jsonData.StringOf("AllRecipients[i].EmailAddress")
LastSentOn = jsonData.StringOf("AllRecipients[i].LastSentOn")
SendCount = jsonData.IntOf("AllRecipients[i].SendCount")
IsFavorite = jsonData.BoolOf("AllRecipients[i].IsFavorite")
i = i + 1