

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Invio di messaggi SMS tramite Amazon SNS
<a name="sms_sending-overview"></a>

Questa sezione descrive come inviare messaggi SMS utilizzando Amazon SNS, inclusa la pubblicazione su un argomento, l'iscrizione di numeri di telefono agli argomenti, l'impostazione degli attributi sui messaggi e la pubblicazione diretta sui telefoni cellulari.

## Pubblicazione di messaggi SMS su un argomento di Amazon SNS
<a name="sms_publish-to-topic"></a>

Puoi inviare un singolo messaggio SMS a più numeri di telefono contemporaneamente sottoscrivendo tali numeri in un argomento Amazon SNS. Un argomento SNS è un canale di comunicazione dove è possibile aggiungere gli abbonati ai quali si vogliono indirizzare determinati messaggi. Un abbonato riceve tutti i messaggi pubblicati sull'argomento fino a quando non annulli l'abbonamento o finché l'abbonato non sceglie di non ricevere messaggi SMS dal tuo account. AWS 

### Invio di un messaggio a un argomento tramite la console AWS
<a name="sms_publish-to-topic_console"></a>

**Per creare un argomento**

Se ancora non disponi di un argomento al quale inviare messaggi SMS, completa i seguenti passaggi.

1. Accedi alla [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Nel menu della console, scegli una [regione che supporti la messaggistica SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Nel pannello di navigazione, scegli **Argomenti**.

1. Nella pagina **Topics (Argomenti)**, seleziona **Create new topic (Crea nuovo argomento)**.

1. Nella pagina **Create topic (Crea argomento)**, in **Details (Dettagli)**, effettuare le seguenti operazioni:

   1. Per **Tipo**, scegliere **Standard**.

   1. In **Name (Nome)**, immettere un nome.

   1. (Facoltativo) In **Display name (Nome visualizzato)**, inserisci un prefisso personalizzato per il messaggio SMS. Quando invii un messaggio all'argomento, Amazon SNS antepone il nome visualizzato a una parentesi angolare destra (>) e uno spazio. I nomi visualizzati non sono sensibili alle maiuscole/minuscole, in quanto sarà poi Amazon SNS a convertirli in caratteri maiuscoli. Ad esempio, se il nome visualizzato di un argomento è `MyTopic` e il messaggio è `Hello World!`, il messaggio appare in questo formato:

      ```
      MYTOPIC> Hello World!
      ```

1. Scegliere **Create topic (Crea argomento)**. Il nome dell'argomento e l'Amazon Resource Name (ARN) vengono visualizzati nella pagina **Topics (Argomenti)**

**Per creare una sottoscrizione SMS**

Con le sottoscrizioni puoi inviare un messaggio SMS a più destinatari pubblicandolo una volta sola nel tuo argomento.
**Nota**  
Quando inizi a utilizzare Amazon SNS per inviare messaggi SMS, il tuo AWS account si trova nella sandbox *SMS*. La sandbox SMS offre un ambiente sicuro per provare le funzionalità Amazon SNS senza rischiare la reputazione del mittente SMS. Quando il tuo account è nella sandbox SMS, puoi utilizzare tutte le caratteristiche di Amazon SNS, ma puoi inviare SMS solo a numeri di telefono di destinazione verificati. Per ulteriori informazioni, consulta [Utilizzo della sandbox SMS di Amazon SNS](sns-sms-sandbox.md).

1. Accedi alla [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Nel riquadro di navigazione scegli **Subscriptions (Sottoscrizioni)**.

1. Nella pagina **Sottoscrizioni** scegli **Crea sottoscrizione**.

1. Nella pagina **Create subscription (Crea sottoscrizione)**, nella sezione **Details (Dettagli)**, eseguire queste operazioni:

   1. Per **Topic ARN (ARN argomento)**, inserisci o seleziona l'Amazon Resource Name (ARN) dell'argomento a cui desideri inviare messaggi SMS.

   1. In **Protocol (Protocollo)**, scegli **SMS**.

   1. Per **Endpoint**, inserisci il numero di telefono a cui desideri iscriverti all'argomento.

1. Scegli **Create Subscription (Crea sottoscrizione)**. Le informazioni sull'abbonamento vengono visualizzate nella pagina **Subscriptions (Abbonamenti)**.

   Per aggiungere altri numeri di telefono, ripetere questi passaggi. Puoi anche aggiungere altri tipi di sottoscrizione, ad esempio le e-mail.

**Come inviare un messaggio**

Quando pubblichi un messaggio in un argomento, Amazon SNS prova a consegnare il messaggio a tutti i numeri di telefono che hanno effettuato la sottoscrizione a un dato argomento.

1. Nella [Console Amazon SNS](https://console.aws.amazon.com/sns/home), nella pagina **Topics (Argomenti)**, scegli il nome dell'argomento a cui desideri inviare messaggi SMS.

1. Nella pagina dettagli, seleziona **Publish message (Pubblica messaggio)**.

1. Nella pagina **Publish message to topic (Pubblica messaggio nell'argomento)**, alla sezione **Message details (Dettagli messaggio)** procedi come indicato di seguito:

   1. Per **Subject (Oggetto)**, lascia il campo vuoto a meno che il tuo argomento non contenga anche sottoscrizioni e-mail e tu non voglia pubblicare il messaggio sulle sottoscrizioni e-mail ed SMS. Amazon SNS utilizza il **Subject (Oggetto)** che inserisci come oggetto dell'e-mail.

   1. (Facoltativo) Per **Time to Live (TTL) (Durata)**, inserisci un numero di secondi che Amazon SNS deve inviare il tuo messaggio SMS a tutti gli abbonati agli endpoint delle applicazioni mobili.

1. Su **Message body (Corpo del messaggio)**, procedere come segue:

   1. Per **Message structure (Struttura dei messaggi)**, scegliere **Identical payload for all delivery protocols (Payload identico per tutti i protocolli di consegna)** per inviare lo stesso messaggio a tutti i tipi di protocollo sottoscritti all'argomento. In alternativa, scegliere **Custom payload for each delivery protocol (Payload personalizzato per ogni protocollo di consegna)** per personalizzare il messaggio per i sottoscrittori di diversi tipi di protocollo. Ad esempio, è possibile immettere un messaggio predefinito per gli abbonati al numero di telefono e un messaggio personalizzato per i sottoscrittori di posta elettronica.

   1. Per **Message body to send to the endpoint (Corpo del messaggio da inviare all'endpoint)**, immettere il messaggio o i messaggi personalizzati per protocollo di recapito.

      Se il tuo argomento ha un nome visualizzato, Amazon SNS lo aggiunge al messaggio, aumentando così la lunghezza del messaggio. La lunghezza del nome visualizzato dipende dal numero di caratteri nel nome più due per la parentesi angolare destra (>) e lo spazio aggiunto da Amazon SNS.

      Per informazioni sulle dimensioni massime degli SMS, consulta [Pubblicazione di messaggi SMS su un telefono cellulare tramite Amazon SNS](#sms_publish-to-phone).

1. (Facoltativo) Per **gli attributi dei messaggi**, aggiungi i metadati dei messaggi come timestamp, firme e. IDs

1. Seleziona **Publish message (Pubblica messaggio)**. Amazon SNS invia il messaggio SMS e ne visualizza quindi la conferma.

### Invio di un messaggio a un argomento utilizzando il AWS SDKs
<a name="sms_publish-to-topic_sdk"></a>

Per utilizzare un AWS SDK, devi configurarlo con le tue credenziali. *Per ulteriori informazioni, consulta [I file di configurazione e credenziali condivisi nella and](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) Tools Reference AWS SDKs Guide.*

Il codice di esempio seguente mostra come fare per:
+ Creazione di un argomento Amazon SNS.
+ Sottoscrivere un numero di telefono cellulare all’argomento.
+ Pubblicazione di messaggi SMS nell’argomento in modo che tutti i numeri di telefono sottoscritti ricevano il messaggio in una sola volta.

------
#### [ Java ]

**SDK per Java 2.x**  
 C'è di più su. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 
Creare un argomento e restituire il suo ARN.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.CreateTopicRequest;
import software.amazon.awssdk.services.sns.model.CreateTopicResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateTopic {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicName>

                Where:
                   topicName - The name of the topic to create (for example, mytopic).

                """;

        if (args.length != 1) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicName = args[0];
        System.out.println("Creating a topic with name: " + topicName);
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        String arnVal = createSNSTopic(snsClient, topicName);
        System.out.println("The topic ARN is" + arnVal);
        snsClient.close();
    }

    public static String createSNSTopic(SnsClient snsClient, String topicName) {
        CreateTopicResponse result;
        try {
            CreateTopicRequest request = CreateTopicRequest.builder()
                    .name(topicName)
                    .build();

            result = snsClient.createTopic(request);
            return result.topicArn();

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
}
```
Sottoscrivere un endpoint a un argomento.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SnsException;
import software.amazon.awssdk.services.sns.model.SubscribeRequest;
import software.amazon.awssdk.services.sns.model.SubscribeResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SubscribeTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <topicArn> <phoneNumber>

                Where:
                   topicArn - The ARN of the topic to subscribe.
                   phoneNumber - A mobile phone number that receives notifications (for example, +1XXX5550100).
                """;

        if (args.length < 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String topicArn = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();

        subTextSNS(snsClient, topicArn, phoneNumber);
        snsClient.close();
    }

    public static void subTextSNS(SnsClient snsClient, String topicArn, String phoneNumber) {
        try {
            SubscribeRequest request = SubscribeRequest.builder()
                    .protocol("sms")
                    .endpoint(phoneNumber)
                    .returnSubscriptionArn(true)
                    .topicArn(topicArn)
                    .build();

            SubscribeResponse result = snsClient.subscribe(request);
            System.out.println("Subscription ARN: " + result.subscriptionArn() + "\n\n Status is "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Impostare gli attributi del messaggio, ad esempio l’ID del mittente, il prezzo massimo e il relativo tipo. Gli attributi del messaggio sono facoltativi.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest;
import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse;
import software.amazon.awssdk.services.sns.model.SnsException;
import java.util.HashMap;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class SetSMSAttributes {
    public static void main(String[] args) {
        HashMap<String, String> attributes = new HashMap<>(1);
        attributes.put("DefaultSMSType", "Transactional");
        attributes.put("UsageReportS3Bucket", "janbucket");

        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        setSNSAttributes(snsClient, attributes);
        snsClient.close();
    }

    public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) {
        try {
            SetSmsAttributesRequest request = SetSmsAttributesRequest.builder()
                    .attributes(attributes)
                    .build();

            SetSmsAttributesResponse result = snsClient.setSMSAttributes(request);
            System.out.println("Set default Attributes to " + attributes + ". Status was "
                    + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
Pubblicare un messaggio in un argomento. Il messaggio viene inviato a ogni abbonato.  

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```

------

## Pubblicazione di messaggi SMS su un telefono cellulare tramite Amazon SNS
<a name="sms_publish-to-phone"></a>

Puoi utilizzare Amazon SNS per inviare messaggi SMS direttamente a un telefono cellulare senza sottoscrivere il numero di telefono a un argomento Amazon SNS.

**Nota**  
La sottoscrizione di numeri di telefono a un argomento è utile se desideri inviare un messaggio a più numeri di telefono contemporaneamente. Per istruzioni sulla pubblicazione di un messaggio SMS in un argomento, consulta [Pubblicazione di messaggi SMS su un argomento di Amazon SNS](#sms_publish-to-topic).

Quando invii un messaggio, puoi controllare se è ottimizzato relativamente al costo e all'affidabilità della consegna. È anche possibile specificare un [sender ID or origination number (ID mittente o numero di origine)](channels-sms-originating-identities.md). Se invii il messaggio in modo programmatico utilizzando l'API Amazon SNS o AWS SDKs il, puoi specificare un prezzo massimo per la consegna del messaggio.

Ogni messaggio SMS può contenere fino a 140 byte, mentre la quota di caratteri dipende dallo schema di codifica. Ad esempio, un messaggio SMS può contenere:
+ 160 caratteri GSM
+ 140 caratteri ASCII
+ 70 caratteri UCS-2

Se il messaggio supera la quota della dimensione, Amazon SNS lo invia sotto forma di più messaggi, ciascuno nel rispetto della quota della dimensione indicata. I messaggi non vengono troncati nel mezzo di una parola ma tra una parola e l'altra. Le quota della dimensione totale massima di una singola pubblicazione SMS è di 1600 byte.

Quando invii un SMS, specifichi il numero di telefono utilizzando il formato E.164, una struttura di numerazione standard utilizzata per le telecomunicazioni internazionali. I numeri di telefono che seguono questo formato possono avere un massimo di 15 cifre oltre al prefisso con il segno più (\$1) e il prefisso del paese. Ad esempio, un numero di telefono statunitense in formato E.164 viene visualizzato come \$11. XXX5550100

### Invio di un messaggio (Console)
<a name="sms_publish_console"></a>

1. Accedi alla [console Amazon SNS](https://console.aws.amazon.com/sns/home).

1. Nel menu della console, scegli una [regione che supporti la messaggistica SMS](https://docs.aws.amazon.com/general/latest/gr/end-user-messaging.html).

1. Nel riquadro di navigazione, seleziona **Text messaging (SMS)** (SMS).

1. Nella pagina **Messaggi di testo per dispositivi mobili (SMS)** scegli **Pubblicazione di testo**.

1. Nella pagina **Pubblicazione di messaggi SMS**, per **Tipo di messaggio** scegliere una delle opzioni seguenti:
   + **Promotional (Promozionali)** - Messaggi non critici, come i messaggi di marketing.
   + **Transactional (Transazionali)** - Messaggi critici che supportano le transazioni dei clienti, come le password monouso per l'autenticazione a più fattori.
**Nota**  
Questa impostazione a livello di messaggio sostituisce il tipo di messaggio predefinito a livello di account. È possibile impostare un tipo di messaggio predefinito a livello di account dalla sezione **Preferenze di messaggistica** della pagina **Messaggi di testo per dispositivi mobili (SMS)**.

   Per informazioni sulle tariffe relative a messaggi promozionali e transazionali, consulta la pagina relativa alle [tariffe SMS globali](https://aws.amazon.com/sns/sms-pricing/).

1. In **Number (Numero)**, inserisci il numero di telefono al quale vuoi inviare il messaggio.

1. In **Message (Messaggio)**, inserisci il testo da inviare.

1. (Facoltativo) Su **Identità di origine**, specificare come identificarsi ai destinatari:
   + Per specificare l'**ID mittente**, digita un ID personalizzato contenente da 3 a 11 caratteri alfanumerici, tra cui almeno una lettera e nessuno spazio. L'ID mittente viene visualizzato come mittente del messaggio sul dispositivo ricevente. Ad esempio, puoi utilizzare il tuo marchio commerciale per rendere più facilmente riconoscibile l'origine del messaggio.

     Il supporto per il mittente IDs varia in base al Paese e all' and/or area geografica. Ad esempio, i messaggi consegnati a numeri di telefono statunitensi non visualizzeranno l'ID mittente. Per i paesi e le aree geografiche che supportano il mittente IDs, consulta [Paesi e aree geografiche supportati per la messaggistica SMS AWS End User Messaging SMS nella Guida](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) per l'*AWS End User Messaging SMS utente*.

     Se non specifichi un ID mittente, una delle seguenti identità verrà visualizzata come identità di origine:
     + Nei paesi che supportano codici lunghi, verrà visualizzato il codice lungo.
     + Nei paesi in cui è supportato solo il mittente, IDs viene visualizzato l'*AVVISO*.

     Tale ID mittente a livello di messaggio sovrascrive l'ID mittente predefinito, che è stato impostato sulla pagina **Text messaging preferences** (Preferenze messaggi di testo).
   + Per specificare un **Numero di origine**, inserisci una stringa di 5-14 numeri da visualizzare come numero di telefono del mittente sul dispositivo del ricevitore. Questa stringa deve corrispondere a un numero di origine configurato nel tuo paese Account AWS di destinazione. Il numero di origine può essere un numero da 10 DLC, un numero verde, un codice person-to-person lungo o codici brevi. Per ulteriori informazioni, consulta [Identità di origine per i messaggi SMS di Amazon SNS](channels-sms-originating-identities.md).

     Se non specifichi un numero di origine, Amazon SNS seleziona un numero di origine da utilizzare per il messaggio di testo SMS, in base alla configurazione di Account AWS .

1. Se invii messaggi SMS ai destinatari in India, espandi **Attributi specifici del paese** e specifica gli attributi seguenti:
   + **ID entità** — L'ID entità o l'ID entità principale (PE) per l'invio di messaggi SMS ai destinatari in India. Questo ID è una stringa univoca di 1-50 caratteri fornita dalla Telecom Regulatory Authority of India (TRAI) per identificare l'entità registrata presso il TRAI.
   + **ID modello** — L'ID modello per l'invio di messaggi SMS ai destinatari in India. Questo ID è una stringa univoca fornita da TRAI di 1-50 caratteri che identificherà il modello registrato con TRAI. L'ID modello deve essere associato all'ID mittente specificato per il messaggio.

   Per ulteriori informazioni sull'invio di messaggi SMS a destinatari in [India, consulta la procedura di registrazione dell'ID mittente indiano nella Guida](https://docs.aws.amazon.com/sms-voice/latest/userguide/registrations-sms-senderid-india.html) per l'*AWS End User Messaging SMS utente*.

1. Seleziona **Publish message (Pubblica messaggio)**.

**Suggerimento**  
Per inviare messaggi SMS da un numero di origine, puoi anche scegliere **Numeri di origine** nel pannello di navigazione della console Amazon SNS. Scegliere un numero di origine che includa **SMS** nella colonna **Capabilities (Funzionalità)**, quindi scegliere **Pubblicazione di testo**.

### Invio di un messaggio ()AWS SDKs
<a name="sms_publish_sdk"></a>

Per inviare un messaggio SMS utilizzando uno di questi AWS SDKs, utilizza l'operazione API in quell'SDK che corrisponde alla `Publish` richiesta nell'API Amazon SNS. Con questa richiesta, puoi inviare un messaggio SMS direttamente a un numero di telefono. Puoi anche utilizzare il parametro `MessageAttributes` per impostare i valori per i seguenti nomi attributo:

**`AWS.SNS.SMS.SenderID`**  
Un ID personalizzato che contiene da 3 a 11 caratteri alfanumerici o caratteri trattino (-), tra cui almeno una lettera e nessuno spazio. L'ID mittente viene visualizzato come mittente del messaggio sul dispositivo ricevente. Ad esempio, puoi utilizzare il tuo marchio commerciale per aiutare a rendere più facilmente riconoscibile l'origine del messaggio.  
Il supporto per il mittente IDs varia in base al Paese o all'area geografica. Nei messaggi recapitati a numeri di telefono degli Stati Uniti, ad esempio, non viene visualizzato l'ID mittente. Per un elenco dei paesi o delle aree geografiche che supportano il mittente IDs, consulta [Paesi e aree geografiche supportati per la messaggistica SMS AWS End User Messaging SMS nella Guida](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-sms-by-country.html) per l'*AWS End User Messaging SMS utente*.  
Se non specifichi un ID mittente, il messaggio visualizzerà un [codice lungo](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers-request-long-code.html) come ID mittente nei paesi o nelle regioni supportati. Per i paesi o le regioni che richiedono un ID mittente in forma alfabetica, il messaggio visualizza *NOTICE (PREAVVISO)* come ID mittente.  
Questo attributo a livello di messaggio sovrascrive l'attributo a livello di account `DefaultSenderID`, che può essere impostato tramite la richiesta `SetSMSAttributes`.

**`AWS.MM.SMS.OriginationNumber`**  
Una stringa personalizzata di 5-14 numeri, che può includere un segno \$1 iniziale opzionale (`+`). Questa stringa di numeri viene visualizzata come numero di telefono del mittente sul dispositivo ricevente. La stringa deve corrispondere a un numero di origine configurato nel tuo AWS account per il paese di destinazione. Il numero di origine può essere un numero da 10 DLC, un numero verde, un codice lungo person-to-person (P2P) o un codice breve. *Per ulteriori informazioni, consulta Numeri di [telefono](https://docs.aws.amazon.com/sms-voice/latest/userguide/phone-numbers.html) nella Guida per l'utente.AWS End User Messaging SMS *  
Se non specifichi un numero di origine, Amazon SNS sceglie un numero di origine in base alla configurazione del tuo account. AWS 

**`AWS.SNS.SMS.MaxPrice`**  
L'importo massimo in dollari che sei disposto a spendere per inviare il messaggio SMS. Amazon SNS non invierà il messaggio nel caso in cui il costo dovesse superare il prezzo massimo.  
Questo attributo non ha effetto se i costi month-to-date degli SMS hanno già superato la quota impostata per l'attributo. `MonthlySpendLimit` È possibile impostare `MonthlySpendLimit` utilizzando l'attributo `SetSMSAttributes`.  
Quando invii il messaggio a un argomento Amazon SNS, a ogni messaggio inviato viene applicato il prezzo massimo a ognuno dei numeri di telefono sottoscritti a un dato argomento.

**`AWS.SNS.SMS.SMSType`**  
Tipo di messaggio che intendi inviare:  
+ **`Promotional`** (impostazione predefinita) - Messaggi non critici, come i messaggi di marketing.
+ **`Transactional`** – Messaggi critici che supportano le transazioni dei clienti, come i passcode monouso per l'autenticazione a più fattori.
Questo attributo a livello di messaggio sovrascrive l'attributo a livello di account `DefaultSMSType`, che può essere impostato tramite la richiesta `SetSMSAttributes`.

**`AWS.MM.SMS.EntityId`**  
Questo attributo è necessario solo per l'invio di messaggi SMS ai destinatari in India.  
ID entità o ID entità principale (PE) per l'invio di messaggi SMS ai destinatari in India. Questo ID è una stringa univoca di 1-50 caratteri fornita dalla Telecom Regulatory Authority of India (TRAI) per identificare l'entità registrata presso il TRAI.

**`AWS.MM.SMS.TemplateId`**  
Questo attributo è necessario solo per l'invio di messaggi SMS ai destinatari in India.  
Questo è il modello per inviare messaggi SMS ai destinatari in India. Questo ID è una stringa univoca fornita da TRAI di 1-50 caratteri che identificherà il modello registrato con il TRAI. L'ID modello deve essere associato all'ID mittente specificato per il messaggio.

#### Invio di un messaggio
<a name="sms_publish_sdks"></a>

Negli esempi di codice seguenti viene illustrato come pubblicare messaggi SMS utilizzando Amazon SNS.

------
#### [ .NET ]

**SDK per .NET**  
 C'è altro da fare GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/dotnetv3/SNS#code-examples). 

```
namespace SNSMessageExample
{
    using System;
    using System.Threading.Tasks;
    using Amazon;
    using Amazon.SimpleNotificationService;
    using Amazon.SimpleNotificationService.Model;

    public class SNSMessage
    {
        private AmazonSimpleNotificationServiceClient snsClient;

        /// <summary>
        /// Initializes a new instance of the <see cref="SNSMessage"/> class.
        /// Constructs a new SNSMessage object initializing the Amazon Simple
        /// Notification Service (Amazon SNS) client using the supplied
        /// Region endpoint.
        /// </summary>
        /// <param name="regionEndpoint">The Amazon Region endpoint to use in
        /// sending test messages with this object.</param>
        public SNSMessage(RegionEndpoint regionEndpoint)
        {
            snsClient = new AmazonSimpleNotificationServiceClient(regionEndpoint);
        }

        /// <summary>
        /// Sends the SMS message passed in the text parameter to the phone number
        /// in phoneNum.
        /// </summary>
        /// <param name="phoneNum">The ten-digit phone number to which the text
        /// message will be sent.</param>
        /// <param name="text">The text of the message to send.</param>
        /// <returns>Async task.</returns>
        public async Task SendTextMessageAsync(string phoneNum, string text)
        {
            if (string.IsNullOrEmpty(phoneNum) || string.IsNullOrEmpty(text))
            {
                return;
            }

            // Now actually send the message.
            var request = new PublishRequest
            {
                Message = text,
                PhoneNumber = phoneNum,
            };

            try
            {
                var response = await snsClient.PublishAsync(request);
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error sending message: {ex}");
            }
        }
    }
}
```
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://docs.aws.amazon.com/goto/DotNetSDKV3/sns-2010-03-31/Publish) nella *documentazione di riferimento dell’API AWS SDK per .NET *. 

------
#### [ C\$1\$1 ]

**SDK per C\$1\$1**  
 C'è dell'altro GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/cpp/example_code/sns#code-examples). 

```
/**
 * Publish SMS: use Amazon Simple Notification Service (Amazon SNS) to send an SMS text message to a phone number.
 * Note: This requires additional AWS configuration prior to running example. 
 * 
 *  NOTE: When you start using Amazon SNS to send SMS messages, your AWS account is in the SMS sandbox and you can only
 *  use verified destination phone numbers. See https://docs.aws.amazon.com/sns/latest/dg/sns-sms-sandbox.html.
 *  NOTE: If destination is in the US, you also have an additional restriction that you have use a dedicated
 *  origination ID (phone number). You can request an origination number using Amazon Pinpoint for a fee.
 *  See https://aws.amazon.com/blogs/compute/provisioning-and-using-10dlc-origination-numbers-with-amazon-sns/ 
 *  for more information. 
 * 
 *  <phone_number_value> input parameter uses E.164 format. 
 *  For example, in United States, this input value should be of the form: +12223334444
 */

//! Send an SMS text message to a phone number.
/*!
  \param message: The message to publish.
  \param phoneNumber: The phone number of the recipient in E.164 format.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::publishSms(const Aws::String &message,
                             const Aws::String &phoneNumber,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::PublishRequest request;
    request.SetMessage(message);
    request.SetPhoneNumber(phoneNumber);

    const Aws::SNS::Model::PublishOutcome outcome = snsClient.Publish(request);

    if (outcome.IsSuccess()) {
        std::cout << "Message published successfully with message id, '"
                  << outcome.GetResult().GetMessageId() << "'."
                  << std::endl;
    }
    else {
        std::cerr << "Error while publishing message "
                  << outcome.GetError().GetMessage()
                  << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/Publish) nella *documentazione di riferimento dell’API AWS SDK per C\$1\$1 *. 

------
#### [ Java ]

**SDK per Java 2.x**  
 C'è dell'altro GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/sns#code-examples). 

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.sns.SnsClient;
import software.amazon.awssdk.services.sns.model.PublishRequest;
import software.amazon.awssdk.services.sns.model.PublishResponse;
import software.amazon.awssdk.services.sns.model.SnsException;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class PublishTextSMS {
    public static void main(String[] args) {
        final String usage = """

                Usage:    <message> <phoneNumber>

                Where:
                   message - The message text to send.
                   phoneNumber - The mobile phone number to which a message is sent (for example, +1XXX5550100).\s
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String message = args[0];
        String phoneNumber = args[1];
        SnsClient snsClient = SnsClient.builder()
                .region(Region.US_EAST_1)
                .build();
        pubTextSMS(snsClient, message, phoneNumber);
        snsClient.close();
    }

    public static void pubTextSMS(SnsClient snsClient, String message, String phoneNumber) {
        try {
            PublishRequest request = PublishRequest.builder()
                    .message(message)
                    .phoneNumber(phoneNumber)
                    .build();

            PublishResponse result = snsClient.publish(request);
            System.out
                    .println(result.messageId() + " Message sent. Status was " + result.sdkHttpResponse().statusCode());

        } catch (SnsException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
    }
}
```
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/Publish) nella *documentazione di riferimento dell’API AWS SDK for Java 2.x *. 

------
#### [ Kotlin ]

**SDK per Kotlin**  
 C'è dell'altro GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/sns#code-examples). 

```
suspend fun pubTextSMS(
    messageVal: String?,
    phoneNumberVal: String?,
) {
    val request =
        PublishRequest {
            message = messageVal
            phoneNumber = phoneNumberVal
        }

    SnsClient.fromEnvironment { region = "us-east-1" }.use { snsClient ->
        val result = snsClient.publish(request)
        println("${result.messageId} message sent.")
    }
}
```
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://sdk.amazonaws.com/kotlin/api/latest/index.html) nella *documentazione di riferimento dell’API AWS SDK per Kotlin*. 

------
#### [ PHP ]

**SDK per PHP**  
 C'è dell'altro GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code/sns#code-examples). 

```
require 'vendor/autoload.php';

use Aws\Exception\AwsException;
use Aws\Sns\SnsClient;


/**
 * Sends a text message (SMS message) directly to a phone number using Amazon SNS.
 *
 * This code expects that you have AWS credentials set up per:
 * https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials.html
 */

$SnSclient = new SnsClient([
    'profile' => 'default',
    'region' => 'us-east-1',
    'version' => '2010-03-31'
]);

$message = 'This message is sent from a Amazon SNS code sample.';
$phone = '+1XXX5550100';

try {
    $result = $SnSclient->publish([
        'Message' => $message,
        'PhoneNumber' => $phone,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    error_log($e->getMessage());
}
```
+  Per ulteriori informazioni, consulta la [Guida per sviluppatori di AWS SDK per PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/sns-examples-sending-sms.html#publish-to-a-text-message-sms-message). 
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/Publish) nella *documentazione di riferimento dell’API AWS SDK per PHP *. 

------
#### [ Python ]

**SDK per Python (Boto3)**  
 C'è dell'altro GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/sns#code-examples). 

```
class SnsWrapper:
    """Encapsulates Amazon SNS topic and subscription functions."""

    def __init__(self, sns_resource):
        """
        :param sns_resource: A Boto3 Amazon SNS resource.
        """
        self.sns_resource = sns_resource


    def publish_text_message(self, phone_number, message):
        """
        Publishes a text message directly to a phone number without need for a
        subscription.

        :param phone_number: The phone number that receives the message. This must be
                             in E.164 format. For example, a United States phone
                             number might be +12065550101.
        :param message: The message to send.
        :return: The ID of the message.
        """
        try:
            response = self.sns_resource.meta.client.publish(
                PhoneNumber=phone_number, Message=message
            )
            message_id = response["MessageId"]
            logger.info("Published message to %s.", phone_number)
        except ClientError:
            logger.exception("Couldn't publish message to %s.", phone_number)
            raise
        else:
            return message_id
```
+  Per informazioni dettagliate sull’API, consulta [Pubblicazione](https://docs.aws.amazon.com/goto/boto3/sns-2010-03-31/Publish) nella *documentazione di riferimento dell’API SDK for Python (Boto3)AWS *. 

------
#### [ SAP ABAP ]

**SDK per SAP ABAP**  
 C'è altro da fare. GitHub Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel [Repository di esempi di codice AWS](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/sns#code-examples). 

```
    " iv_phone_number = '+12065550101' - Phone number in E.164 format
    TRY.
        oo_result = lo_sns->publish(              " oo_result is returned for testing purposes. "
          iv_phonenumber = iv_phone_number
          iv_message = iv_message ).
        MESSAGE 'Message published to phone number.' TYPE 'I'.
      CATCH /aws1/cx_snsnotfoundexception.
        MESSAGE 'Phone number does not exist.' TYPE 'E'.
    ENDTRY.
```
+  Per informazioni dettagliate sulle API, consulta [Publish](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html) nella *documentazione di riferimento dell'SDK AWS per l'API SAP ABAP*. 

------