

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à.

# Impostazione delle preferenze di messaggistica SMS in Amazon SNS
<a name="sms_preferences"></a>

Utilizza Amazon SNS per specificare le preferenze per i messaggi SMS. Ad esempio, puoi specificare se ottimizzare le consegne per costo o affidabilità, il limite di spesa mensile, la registrazione delle consegne e se eseguire la sottoscrizione a report di utilizzo di SMS giornalieri.

Queste preferenze diventano effettive per ogni SMS che invii dal tuo account, ma alcune possono essere sovrascritte all'invio di un singolo messaggio. Per ulteriori informazioni, consulta [Pubblicazione di messaggi SMS su un telefono cellulare tramite Amazon SNS](sms_sending-overview.md#sms_publish-to-phone).

## Impostazione delle preferenze per i messaggi SMS utilizzando il Console di gestione AWS
<a name="sms_preferences_console"></a>

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

1. Scegliere 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 **Mobile** e poi **Messaggi di testo (SMS)**.

1. Nella pagina **Mobile text messaging (SMS) (Messaggi di testo mobili (SMS))**, nella sezione **Text messaging preferences (Preferenze per i messaggi di testo)**, scegliere **Edit (Modifica)**.

1. Nella pagina **Modifica le preferenze per i messaggi di testo**, nella sezione **Dettagli**, effettuare queste operazioni:

   1. Per **Default message type (Tipo di messaggio predefinito)**, scegliere una di queste opzioni:
      + **Promozionale**: messaggi non critici (ad esempio marketing). Amazon SNS ottimizza la consegna dei messaggi per generare il costo più basso.
      + **Transazionale**: messaggi critici che supportano le transazioni dei clienti, come le password monouso per l'autenticazione a più fattori. Amazon SNS ottimizza la consegna dei messaggi per ottenere la migliore affidabilità.

      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 **Account spend limit (Limite di spesa per account)**, digitare l'importo massimo in USD da spendere in messaggi SMS ogni mese di calendario.
**Importante**  
Per impostazione predefinita, la quota di spesa è impostata a 1,00 USD. Se si desidera aumentare la quota di servizio, [inviare una richiesta](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase&limitType=service-code-sns).
Se l'importo impostato nella console supera la quota di servizio, Amazon SNS interrompe la pubblicazione di messaggi SMS.
Poiché Amazon SNS è un sistema distribuito, blocca l'invio di SMS alcuni minuti dopo il superamento della quota di spesa. Se continui a inviare SMS durante tale intervallo, potresti incorrere in costi che superano la tua quota di spesa.

1. (Facoltativo) Per **Default sender ID (ID mittente predefinito)**, immettere un ID personalizzato, ad esempio il marchio aziendale, visualizzato come mittente sul dispositivo di ricezione.
**Nota**  
Il supporto per il mittente IDs varia in base al Paese.

1. (Facoltativo) Immettere il **Amazon S3 bucket name for usage reports (Nome bucket Amazon S3 per i report di utilizzo)**.
**Nota**  
La policy del bucket Amazon S3 deve concedere l'accesso in scrittura ad Amazon SNS.

1. Scegli **Save changes** (Salva modifiche).

## Impostazione delle preferenze ()AWS SDKs
<a name="sms_preferences_sdk"></a>

Per impostare le tue preferenze SMS utilizzando uno di questi AWS SDKs, utilizza l'azione in quell'SDK che corrisponde alla `SetSMSAttributes` richiesta nell'API Amazon SNS. Con questa richiesta, assegni valori a differenti attributi SMS, come la quota di spesa mensile e il tipo di SMS predefinito (promozionale o transazionale). Per tutti gli attributi SMS, consulta [Set SMSAttributes](https://docs.aws.amazon.com/sns/latest/api/API_SetSMSAttributes.html) in the *Amazon Simple Notification Service API Reference*.

Gli esempi di codice seguenti mostrano come utilizzare `SetSMSAttributes`.

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

**SDK per C\$1\$1**  
 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/cpp/example_code/sns#code-examples). 
Come usare Amazon SNS per impostare l'attributo predefinitoSMSType .  

```
//! Set the default settings for sending SMS messages.
/*!
  \param smsType: The type of SMS message that you will send by default.
  \param clientConfiguration: AWS client configuration.
  \return bool: Function succeeded.
 */
bool AwsDoc::SNS::setSMSType(const Aws::String &smsType,
                             const Aws::Client::ClientConfiguration &clientConfiguration) {
    Aws::SNS::SNSClient snsClient(clientConfiguration);

    Aws::SNS::Model::SetSMSAttributesRequest request;
    request.AddAttributes("DefaultSMSType", smsType);

    const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes(
            request);

    if (outcome.IsSuccess()) {
        std::cout << "SMS Type set successfully " << std::endl;
    }
    else {
        std::cerr << "Error while setting SMS Type: '"
                  << outcome.GetError().GetMessage()
                  << "'" << std::endl;
    }

    return outcome.IsSuccess();
}
```
+  Per i dettagli sull'API, consulta [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForCpp/sns-2010-03-31/SetSMSAttributes) in *AWS SDK per C\$1\$1 API Reference.* 

------
#### [ CLI ]

**AWS CLI**  
**Impostazione degli attributi dei messaggi SMS**  
Nell’esempio `set-sms-attributes` seguente l’ID mittente predefinito per i messaggi SMS viene impostato su `MyName`.  

```
aws sns set-sms-attributes \
    --attributes DefaultSenderID=MyName
```
Questo comando non produce alcun output.  
+  Per i dettagli sull'API, consulta [Set SMSAttributes](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/sns/set-sms-attributes.html) in *AWS CLI Command Reference*. 

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

**SDK per Java 2.x**  
 C'è altro 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). 

```
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);
        }
    }
}
```
+  Per i dettagli sull'API, consulta [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForJavaV2/sns-2010-03-31/SetSMSAttributes) in *AWS SDK for Java 2.x API Reference*. 

------
#### [ JavaScript ]

**SDK per JavaScript (v3)**  
 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/javascriptv3/example_code/sns#code-examples). 
Creare il client in un modulo separato ed esportarlo.  

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```
Importare l’SDK e i moduli client e chiamare l’API.  

```
import { SetSMSAttributesCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {"Transactional" | "Promotional"} defaultSmsType
 */
export const setSmsType = async (defaultSmsType = "Transactional") => {
  const response = await snsClient.send(
    new SetSMSAttributesCommand({
      attributes: {
        // Promotional – (Default) Noncritical messages, such as marketing messages.
        // Transactional – Critical messages that support customer transactions,
        // such as one-time passcodes for multi-factor authentication.
        DefaultSMSType: defaultSmsType,
      },
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: '1885b977-2d7e-535e-8214-e44be727e265',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   }
  // }
  return response;
};
```
+  Per ulteriori informazioni, consulta la [Guida per sviluppatori di AWS SDK per JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/sns-examples-sending-sms.html#sending-sms-setattributes). 
+  Per i dettagli sull'API, consulta [Set SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/sns/command/SetSMSAttributesCommand) in *AWS SDK per JavaScript API Reference*. 

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

**SDK per PHP**  
 C'è altro 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/php/example_code/sns#code-examples). 

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

try {
    $result = $SnSclient->SetSMSAttributes([
        'attributes' => [
            'DefaultSMSType' => 'Transactional',
        ],
    ]);
    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#set-sms-attributes). 
+  Per i dettagli sull'API, consulta [Set SMSAttributes](https://docs.aws.amazon.com/goto/SdkForPHPV3/sns-2010-03-31/SetSMSAttributes) in *AWS SDK per PHP API Reference*. 

------

## Impostazione delle preferenze di messaggistica SMS per la consegna specifica del Paese
<a name="sms_preferences_country_specific"></a>

Puoi gestire e controllare il traffico SMS inviando messaggi solo a paesi di destinazione specifici. Ciò garantisce che i messaggi vengano inviati solo nei paesi approvati, evitando addebiti indesiderati per SMS. Le seguenti istruzioni utilizzano la configurazione Protect di Amazon Pinpoint per specificare i paesi che desideri consentire o bloccare.

1. Apri la AWS SMS console all'indirizzo [https://console.aws.amazon.com/sms-voice/](https://console.aws.amazon.com/sms-voice/).

1. Nel riquadro di navigazione, in **Panoramica**, nella sezione **Avvio rapido**, scegli **Crea una configurazione di protezione**.

1. In **Proteggi i dettagli di configurazione**, inserisci un **nome adatto alle aziende** per la tua configurazione di protezione (ad esempio, Allow-Only-AU).

1. In **Regole nazionali relative agli SMS**, seleziona la casella di controllo **Regione/Paese** per bloccare l'invio di messaggi a tutti i paesi supportati.

1. Deseleziona le caselle di controllo relative ai paesi in cui desideri inviare messaggi. **Ad esempio, per consentire l'invio di messaggi solo in Australia, deseleziona la casella di controllo relativa all'Australia.**

1. Nella sezione **Proteggi le associazioni di configurazione**, in **Tipo di associazione**, seleziona **Account** predefinito. Ciò garantirà che la configurazione AWS End User Messaging SMS Protect influisca su tutti i messaggi inviati tramite Amazon SNS, [Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-identity-pools.html) e la chiamata API Amazon Pinpoint. [https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html](https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-sms.html)

1. Scegli **Crea configurazione di protezione per salvare le tue impostazioni**.

   Viene visualizzato il seguente messaggio di conferma:

   ```
   Success Protect configuration protect-abc0123456789 has been created.
   ```

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

1. [**Pubblica un messaggio**](sns-publishing.md) in uno dei paesi bloccati, come l'India.

   Il messaggio non verrà recapitato. È possibile verificarlo nei registri degli errori di consegna utilizzando [CloudWatch](sms_stats_cloudwatch.md). Cerca nel gruppo di **sns/region/AccountID/DirectPublishToPhoneNumber/Failure**log una risposta simile all'esempio seguente:

   ```
   {
   "notification": {
   "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217",
   "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“
   },
   "delivery": {
   "destination": "+91XXXXXXXXXX",
   "smsType": "Transactional",
   "providerResponse": "Cannot deliver message to the specified destination country",
   "dwellTimeMs": 85
   },
   "status": "FAILURE"
   }
   ```