Let the platform do the work

Retrieving Email Attachments

Overview

A PHP example demonstrating how to retrieve an email and its attachments from using the get_entry and get_note_attachment methods using cURL and the v4_1 REST API.

This example will retrieve a specified email record by its ID and write the attachments to the local filesystem.

Example

<?php

$url = "http://{site_url}/service/v4_1/rest.php";
$username = "admin";
$password = "password";

//function to make cURL request
function call($method, $parameters, $url)
{
    ob_start();
    $curl_request = curl_init();

    curl_setopt($curl_request, CURLOPT_URL, $url);
    curl_setopt($curl_request, CURLOPT_POST, 1);
    curl_setopt($curl_request, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
    curl_setopt($curl_request, CURLOPT_HEADER, 1);
    curl_setopt($curl_request, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl_request, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl_request, CURLOPT_FOLLOWLOCATION, 0);

    $jsonEncodedData = json_encode($parameters);

    $post = array(
        "method" => $method,
        "input_type" => "JSON",
        "response_type" => "JSON",
        "rest_data" => $jsonEncodedData
    );

    curl_setopt($curl_request, CURLOPT_POSTFIELDS, $post);
    $result = curl_exec($curl_request);
    curl_close($curl_request);

    $result = explode("\r\n\r\n", $result, 2);
    $response = json_decode($result[1]);
    ob_end_flush();

    return $response;
}

//login --------------------------------------------- 

$login_parameters = array(
    "user_auth" => array(
        "user_name" => $username,
        "password" => md5($password),
        "version" => "1"
    ),
    "application_name" => "RestTest",
    "name_value_list" => array(),
);

$login_result = call("login", $login_parameters, $url);

/*
echo "<pre>";
print_r($login_result);
echo "</pre>";
*/

//get session id
$session_id = $login_result->id;

//retrieve the email --------------------------------------------- 

// email id of an email with an attachment
$email_id   = '5826bd75-527a-a736-edf5-5205421467bf';

// use get_entry to get the email contents
$get_entry_parameters = array(
    'session' => $session_id,
    'module_name' => 'Emails',
    'id' => $email_id,
    'select_fields' => array(),
    'link_name_to_fields_array' => array(
        array(
            'name' => 'notes',
            'value' => array(
                'id',
                'name',
                'file_mime_type',
                'filename',
                'description',
            ),
        ),
    ),
    'track_view' => false
);

$get_entry_result = call('get_entry', $get_entry_parameters, $url);

//Email record contents
echo "<pre>";
print_r($get_entry_result);
echo "</pre>";

if (!isset($get_entry_result->entry_list[0]))
{
    echo "Email not found!";
    die();
}

if (!isset($get_entry_result->relationship_list) || count($get_entry_result->relationship_list) == 0)
{
    echo "No attachments found!";
    die();
}

//retrieve any attachments --------------------------------------------- 

foreach ($get_entry_result->relationship_list[0][0]->records as $key => $attachmentInfo)
{
    $get_note_attachment_parameters = array(
        'session' => $session_id,
        'id'      => $attachmentInfo->id->value,
    );

    $get_note_attachment_result = call('get_note_attachment', $get_note_attachment_parameters, $url);

    //attachment contents
    echo "<pre>";
    print_r($get_note_attachment_result);
    echo "</pre>";

    $file_name = $get_note_attachment_result->note_attachment->filename;
    //decode and get file contents
    $file_contents = base64_decode($get_note_attachment_result->note_attachment->file);

    //write file
    file_put_contents($file_name, $file_contents);
}

Result

//Email Result
stdClass Object
(
    [entry_list] => Array
        (
            [0] => stdClass Object
                (
                    [id] => 5826bd75-527a-a736-edf5-5205421467bf
                    [module_name] => Emails
                    [name_value_list] => stdClass Object
                        (
                            [assigned_user_name] => stdClass Object
                                (
                                    [name] => assigned_user_name
                                    [value] => Administrator
                                )

                            [modified_by_name] => stdClass Object
                                (
                                    [name] => modified_by_name
                                    [value] => Administrator
                                )

                            [created_by_name] => stdClass Object
                                (
                                    [name] => created_by_name
                                    [value] => Administrator
                                )

                            [team_id] => stdClass Object
                                (
                                    [name] => team_id
                                    [value] => 1
                                )

                            [team_set_id] => stdClass Object
                                (
                                    [name] => team_set_id
                                    [value] => 1
                                )

                            [team_name] => stdClass Object
                                (
                                    [name] => team_name
                                    [value] => Global
                                )

                            [id] => stdClass Object
                                (
                                    [name] => id
                                    [value] => 5826bd75-527a-a736-edf5-5205421467bf
                                )

                            [date_entered] => stdClass Object
                                (
                                    [name] => date_entered
                                    [value] => 2013-08-09 19:28:00
                                )

                            [date_modified] => stdClass Object
                                (
                                    [name] => date_modified
                                    [value] => 2013-08-09 19:29:08
                                )

                            [assigned_user_id] => stdClass Object
                                (
                                    [name] => assigned_user_id
                                    [value] => 1
                                )

                            [modified_user_id] => stdClass Object
                                (
                                    [name] => modified_user_id
                                    [value] => 1
                                )

                            [created_by] => stdClass Object
                                (
                                    [name] => created_by
                                    [value] => 1
                                )

                            [deleted] => stdClass Object
                                (
                                    [name] => deleted
                                    [value] => 0
                                )

                            [from_addr_name] => stdClass Object
                                (
                                    [name] => from_addr_name
                                    [value] => SugarCRM
                                )

                            [to_addrs_names] => stdClass Object
                                (
                                    [name] => to_addrs_names
                                    [value] => email@address.com
                                )

                            [description_html] => stdClass Object
                                (
                                    [name] => description_html
                                    [value] =>


                                )

                            [description] => stdClass Object
                                (
                                    [name] => description
                                    [value] =>
                                )

                            [date_sent] => stdClass Object
                                (
                                    [name] => date_sent
                                    [value] => 2013-08-09 19:28:00
                                )

                            [message_id] => stdClass Object
                                (
                                    [name] => message_id
                                    [value] =>
                                )

                            [message_uid] => stdClass Object
                                (
                                    [name] => message_uid
                                    [value] =>
                                )

                            [name] => stdClass Object
                                (
                                    [name] => name
                                    [value] => Example
                                )

                            [type] => stdClass Object
                                (
                                    [name] => type
                                    [value] => out
                                )

                            [status] => stdClass Object
                                (
                                    [name] => status
                                    [value] => read
                                )

                            [flagged] => stdClass Object
                                (
                                    [name] => flagged
                                    [value] => 0
                                )

                            [reply_to_status] => stdClass Object
                                (
                                    [name] => reply_to_status
                                    [value] => 0
                                )

                            [intent] => stdClass Object
                                (
                                    [name] => intent
                                    [value] => pick
                                )

                            [mailbox_id] => stdClass Object
                                (
                                    [name] => mailbox_id
                                    [value] =>
                                )

                            [parent_name] => stdClass Object
                                (
                                    [name] => parent_name
                                    [value] => Having trouble adding new items
                                )

                            [parent_type] => stdClass Object
                                (
                                    [name] => parent_type
                                    [value] => Cases
                                )

                            [parent_id] => stdClass Object
                                (
                                    [name] => parent_id
                                    [value] => 116d4d46-928c-d4af-c22e-518ae4eb13fc
                                )
                        )
                )
        )
    [relationship_list] => Array
        (
            [0] => Array
                (
                    [0] => stdClass Object
                        (
                            [name] => notes
                            [records] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [id] => stdClass Object
                                                (
                                                    [name] => id
                                                    [value] => 1b63a8f9-ce67-6aad-b5a4-52054af18c47
                                                )

                                            [name] => stdClass Object
                                                (
                                                    [name] => name
                                                    [value] => Example.zip
                                                )

                                            [file_mime_type] => stdClass Object
                                                (
                                                    [name] => file_mime_type
                                                    [value] => application/zip
                                                )

                                            [filename] => stdClass Object
                                                (
                                                    [name] => filename
                                                    [value] => Example2.zip
                                                )

                                            [description] => stdClass Object
                                                (
                                                    [name] => description
                                                    [value] =>
                                                )

                                            [_empty_] => stdClass Object
                                                (
                                                    [name] =>
                                                    [value] =>
                                                )

                                        )

                                    [1] => stdClass Object
                                        (
                                            [id] => stdClass Object
                                                (
                                                    [name] => id
                                                    [value] => 592f382d-b633-fd5f-803e-5205423a6d0b
                                                )

                                            [name] => stdClass Object
                                                (
                                                    [name] => name
                                                    [value] => Example2.zip
                                                )

                                            [file_mime_type] => stdClass Object
                                                (
                                                    [name] => file_mime_type
                                                    [value] => application/zip
                                                )

                                            [filename] => stdClass Object
                                                (
                                                    [name] => filename
                                                    [value] => Example2.zip
                                                )

                                            [description] => stdClass Object
                                                (
                                                    [name] => description
                                                    [value] =>
                                                )

                                            [_empty_] => stdClass Object
                                                (
                                                    [name] =>
                                                    [value] =>
                                                )

                                        )

                                )

                        )

                )

        )

)

//Attachment 1 Result
stdClass Object
(
    [note_attachment] => stdClass Object
        (
            [id] => 1b63a8f9-ce67-6aad-b5a4-52054af18c47
            [filename] => Example.zip
            [file] => UEsDBAoAAAAIAOujCEOkMbvsNa0AAMCFAgAXAAAARmlsZXMvaW
            [related_module_id] => 5826bd75-527a-a736-edf5-5205421467bf
            [related_module_name] => Emails
        )

)

//Attachment 2 Result
stdClass Object
(
    [note_attachment] => stdClass Object
        (
            [id] => 592f382d-b633-fd5f-803e-5205423a6d0b
            [filename] => Example2.zip
            [file] => AEUoaAAARmlslsZXMvaWZXujCEOkMbvsNa0AAMCFAgAXAAAARm
            [related_module_id] => 5826bd75-527a-a736-edf5-5205421467bf
            [related_module_name] => Emails
        )

)

 

Topics