PHP Extension
PHP Extension
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 PHP Extension Downloads
<?php
include("chilkat.php");
$success = false;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
$http = new CkHttp();
// 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 = new CkHttpRequest();
$req->put_HttpVerb('POST');
$req->put_Path('/MedTunnelMsg/api/Message/SendMessage');
$req->put_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 = new CkHttpResponse();
$success = $http->HttpSReq('server.medtunnel.com',443,true,$req,$resp);
if ($success == false) {
print $http->lastErrorText() . "\n";
exit;
}
$sbResponseBody = new CkStringBuilder();
$resp->GetBodySb($sbResponseBody);
$jResp = new CkJsonObject();
$jResp->LoadSb($sbResponseBody);
$jResp->put_EmitCompact(false);
print 'Response Body:' . "\n";
print $jResp->emit() . "\n";
$respStatusCode = $resp->get_StatusCode();
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
print 'Response Header:' . "\n";
print $resp->header() . "\n";
print 'Failed.' . "\n";
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 = new CkJsonObject();
$jsonData->Load($Data);
$jsonData->put_EmitCompact(false);
print $jsonData->emit() . "\n";
// {
// "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->put_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->put_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;
}
?>