invio tramite API

Argomenti in questo gruppo:

presentazione

indirizzo del server, parametri obbligatori, risposte JSON

dettagli

set di caratteri, content-type, parametri opzionali, risposte JSON

esempi

esempi php e curl

esempi con allegati

esempi php e curl con allegati

Sottosezioni di invio tramite API

presentazione

RealSender consente di inviare messaggi di posta elettronica tramite API (Application Programming Interface), in italiano Interfaccia di Programmazione di un’Applicazione.

In questo modo è possibile inviare la posta elettronica direttamente dalla vostra applicazione, senza passare attraverso il protocollo SMTP. Al momento sono supportate solo le richieste POST.


Indirizzo del server:
https://rsXXX-api.realsender.com/mail/send

Parametri obbligatori:

Parametro
Descrizione
apiuser nome utente per l’autenticazione
apipass password per l’autenticazione
from indirizzo email del mittente
to indirizzo email del destinatario
subject oggetto della mail
text corpo della mail in testo semplice
html corpo della mail in formato HTML

Se tutto è ok, il messaggio verrà inviato e riceverete una risposta JSON positiva:
{"success":true}

In caso di errori si ottiene una risposta simile a questa:
{"success":false,"errorMsgs":["Please provide the 'subject' value."]}


API Dettagli

dettagli

I contenuti devono essere trasmessi utilizzando il set di caratteri internazionale UTF-8. Per verificarlo, aggiungere “€uro” nell’oggetto ed inviarlo. Se il set di caratteri è sbagliato, riceverete questo avviso JSON: {"success":false,"errorMsgs":["The 'subject' value is not correctly encoded. It must be UTF-8 encoded."]}


A seconda che siano stati compilati uno solo o entrami i campi “text” e “html”, i messaggi verranno inviati utilizzando uno dei seguenti “Content-Type”:

Parametro
Descrizione
text text/plain (solo testo semplice)
html text/html (solo html)
text+html multipart/alternative (testo ed html)
le impostazioni del client di posta utilizzato decideranno quale parte visualizzare

Parametri opzionali:

Parametro
Descrizione
fromname descrizione del mittente
toname descrizione del destinatario
replyto indirizzo email che riceverà le risposte
returnpath indirizzo email che riceverà i messaggi respinti (bounce)
l’indirizzo deve essere presente tra i mittenti autorizzati di RealSender
cc indirizzo email per copia conoscenza
ccname descrizione dell’indirizzo email per copia conoscenza
bcc indirizzo email per copia conoscenza nascosta
bccname descrizione dell’indirizzo email per copia conoscenza nascosta
attach file(s) da allegare - la variabile può essere presente più volte - peso max totale 3MB
il contenuto del file deve trovarsi all’interno del “multipart HTTP POST”
enctype=“multipart/form-data” è richiesto per variabili con INPUT TYPE=FILE

I valori to, cc e bcc possono contenere un singolo indirizzo email oppure una lista di indirizzi email separati da virgola.
!! In RealSender il numero di destinatari per ogni singolo messaggio è limitato a 100.


Le risposte del server sono in formato JSON (JavaScript Object Notation):

Descrizione
Risposta
email inviata {"success":true}
email NON inviata {"success":false,"errorMsgs":["..."]}

API Esempi

esempi

Richiesta POST
Metodo senza-CURL con PHP

<?php
$url = 'https://rsXXX-api.realsender.com/mail/send';
$data = array('apiuser' => 'quello che vi abbiamo inviato', 'apipass' => 'quella che vi abbiamo inviato', 'from' => 'mittente@nomedidominio.it', 'to' => 'destinatario@nomedidominio.it', 'subject' => 'oggetto del messaggio', 'text' => 'corpo della mail in testo semplice', 'html' => 'corpo della mail in formato HTML');

// utilizzare 'http' anche se si invia la richiesta a https://...
$options = array(
    'http' => array(
        'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
        'method'  => 'POST',
        'content' => http_build_query($data),
    ),
);
$context  = stream_context_create($options);
$result = file_get_contents($url, false, $context);

var_dump($result);
?>

Richiesta POST
Metodo CURL

curl -d 'apiuser=quello che vi abbiamo inviato&apipass=quella che vi abbiamo inviato&from=mittente@nomedidominio.it&to=destinatario@nomedidominio.it&subject=oggetto del messaggio&text=corpo della mail in testo semplice&html=corpo della mail in formato HTML' https://rsXXX-api.realsender.com/mail/send

API Esempi con allegati

esempi con allegati

Richiesta POST con allegati (max 5: attach1, attach2, …)
Metodo senza-CURL con PHP

<?php
require_once 'HTTP/Request2.php';

$config = array('use_brackets' => false,
               );

$request = new HTTP_Request2('https://rsXXX-api.realsender.com/mail/send',
                             HTTP_Request2::METHOD_POST,
                             $config);

$data = array('apiuser' => 'quello che vi abbiamo inviato',
              'apipass' => 'quella che vi abbiamo inviato',
              'from' => 'mittente@nomedidominio.it',
              'to' => 'destinatario@nomedidominio.it',
              'subject' => 'oggetto del messaggio',
              'text' => 'corpo della mail in testo semplice',
              'html' => 'corpo della mail in formato HTML');
foreach ($data as $k => $d) {
    $request->addPostParameter($k, $d);
};
$request->addUpload('attach1', './sample.pdf', 'sample.pdf', 'application/pdf');
$request->addUpload('attach2', './sample.txt', 'sample.txt', 'text/plain');

$result  = $request->send();
var_dump($result);
?>

Richiesta POST con allegati
Metodo CURL

curl -F 'apiuser=quello che vi abbiamo inviato' \
      -F 'apipass=quella che vi abbiamo inviato' \
      -F 'from=mittente@nomedidominio.it' \
      -F 'to=destinatario@nomedidominio.it' \
      -F 'subject=oggetto del messaggio' \
      -F 'text=corpo della mail in testo semplice' \
      -F 'html=corpo della mail in formato HTML' \
      -F 'attach=@sample.pdf;type=application/pdf' \
      -F 'attach=@sample.txt;type=text/plain' \
      https://rsXXX-api.realsender.com/mail/send