Veröffentlichen auf einem Mobiltelefon - Amazon Simple Notification Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Veröffentlichen auf einem Mobiltelefon

Sie können Amazon SNS verwenden, um SMS-Nachrichten direkt an ein Mobiltelefon zu senden, ohne die Telefonnummer für ein Amazon SNS-Thema zu abonnieren.

Anmerkung

Das Abonnieren von Telefonnummern zu einem Thema kann nach wie vor nützlich sein, wenn Sie jede Nachricht in mehreren Telefonnummern zugleich senden möchten. Weitere Anleitungen zum Veröffentlichen einer SMS-Nachricht in einem Thema finden Sie unter So veröffentlichen Sie in einem Thema.

Wenn Sie eine Nachricht senden, können Sie überprüfen, ob der Versand in Bezug auf Kosten und Verlässlichkeit optimiert ist. Sie können auch eine Sender-ID oder Ursprungsnummer angeben. Wenn Sie die Nachricht programmgesteuert über die Amazon SNS SNS-API oder die AWS SDKs senden, können Sie einen Höchstpreis für die Nachrichtenzustellung angeben.

Eine SMS-Nachricht kann maximal 140 Byte groß sein, wobei das Zeichenkontingent vom Codierungsschema abhängig ist. Die Anzahl der Zeichen einer SMS-Nachricht ist entsprechend wie folgt begrenzt:

  • 160 GSM-Zeichen

  • 140 ASCII-Zeichen

  • 70 UCS-2-Zeichen

Wenn Sie eine Nachricht veröffentlichen, die das Größenkontingent überschreitet, sendet Amazon SNS mehrere Teilnachrichten, die jeweils dem Größenkontingent entsprechen. Nachrichten werden niemals inmitten eines Wortes geteilt, sondern immer zwischen zwei Wörtern. Für die gesamte veröffentlichte und in mehreren Teilen versendete SMS-Nachricht gilt ein Größenkontingent von 1600 Byte.

Wenn Sie eine SMS-Nachricht senden, geben Sie die Telefonnummer im E.164-Format an – eine Standardnummernstruktur für die Telefonnummerierung, die für die internationale Telekommunikation verwendet wird. Telefonnummern in diesem Format bestehen aus maximal 15 Zeichen sowie einem vorangestellten Plus-Zeichen (+) und der Ländervorwahl. Eine US-Telefonnummer im E.164-Format sieht beispielsweise wie folgt aus: +1XXX5550100.

Senden einer Nachricht (Konsole)

  1. Melden Sie sich bei der Amazon SNS-Konsole an.

  2. Wählen Sie im Konsolenmenü die Option AWS Region, die SMS-Messaging unterstützt aus.

  3. Wählen Sie im Navigationsbereich Text-Messaging (SMS) aus.

  4. Wählen Sie auf der Seite Text-Messaging (SMS) Textnachricht veröffentlichen.

  5. Wählen Sie auf der Seite Textnachricht veröffentlichen für Nachrichtentyp eines der Folgenden:

    • Werbenachrichten – Unkritische Nachrichten, wie beispielsweise Marketing-Nachrichten.

    • Transaktionsnachrichten: Sensible Nachrichten, die Kundentransaktionen unterstützen, wie beispielsweise One-Time-Passcodes für eine Multi-Faktor-Authentifizierung (MFA).

    Anmerkung

    Diese Einstellung auf Nachrichtenebene setzt den Standardnachrichtentyp auf Kontoebene außer Kraft. Auf der Seite Textnachrichten (SMS) im Abschnitt Text-Messaging-Einstellungen können SIe einen Standardnachrichtentyp auf Kontoebene festlegen.

    Informationen zu den Gebühren für Aktions- und Transaktionsnachrichten finden Sie unter Weltweite SMS-Preise.

  6. Geben Sie unter Zieltelefonnummer die Telefonnummer ein, an die Sie die Nachricht senden möchten.

  7. Geben Sie im Feld Message (Nachricht) die Art der zu versendenden Nachricht ein.

  8. (Optional) Legen Sie unter Ursprungsidentitäten fest, wie Sie sich selbst gegenüber Ihren Empfängern identifizieren möchten:

    • Geben Sie im Feld Sender ID (Sender-ID) eine Kunden-ID ein, die 3 bis 11 alphanumerische Zeichen enthält, einschließlich mindestens einem Buchstaben und ohne Leerzeichen. Die Sender-ID wird auf dem Empfänger-Gerät als Sender der Nachricht angezeigt. Sie können z. B. Ihre Unternehmensmarke verwenden, um die Nachrichtenquelle leichter erkennbar zu machen.

      Der Support für Sender-IDs variiert je nach Land und/oder Region. Beispiel: Für Nachrichten, die an eine US-Telefonnummer gesendet werden, wird keine Sender-ID angezeigt. Informationen zu Ländern und Regionen, die Sender-IDs unterstützen, finden Sie unter Unterstützte Länder und Regionen.

      Wenn Sie keine Sender-ID angeben, wird eines der folgenden Elemente als Ursprungsidentität angezeigt:

      • In Ländern, die Langwahlnummern unterstützen, wird die Langwahlnummer angezeigt.

      • In Ländern, in denen nur Sender-IDs unterstützt werden, wird HINWEIS angezeigt.

      Diese Sender-ID auf Nachrichtenebene ersetzt die standardmäßige Sender-ID, die Sie auf der Seite Text messaging preferences (SMS-Präferenzen) konfigurieren.

    • Um eine Ursprungsnummer festzulegen, geben Sie eine Zeichenfolge von 5-14 Nummern ein, die als Telefonnummer des Senders auf dem Gerät des Empfängers angezeigt werden soll. Diese Zeichenfolge muss mit einer Ursprungsnummer übereinstimmen, die in Ihrem AWS-Konto für das Zielland konfiguriert ist. Bei der Ausgangsnummer kann es sich um eine 10DLC-Nummer, eine gebührenfreie Nummer, einen Langcode oder eine Kurzvorwahl handeln. person-to-person Weitere Informationen finden Sie unter Ursprungsidentitäten für SMS-Nachrichten.

      Wenn Sie keine Absendernummer angeben, wählt Amazon SNS basierend auf Ihrer Konfiguration eine Absendernummer aus, die für die SMS-Textnachricht verwendet werden soll. AWS-Konto

  9. Wenn Sie SMS-Nachrichten an Empfänger in Indien senden, erweitern Sie Länderspezifische Attribute und legen Sie die folgenden Attribute fest:

    • Entity-ID – Die Entity ID oder Principal Entity (PE) -ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige Zeichenfolge von 1 bis 50 Zeichen, die die Telecom Regulatory Authority of India (TRAI) zur Identifizierung der Entität bereitstellt, die Sie bei der TRAI registriert haben.

    • ID der Vorlage – Die Vorlagen-ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige, von TRAI bereitgestellte Zeichenfolge mit 1 bis 50 Zeichen, die die Vorlage identifiziert, die Sie bei TRAI registriert haben. Die Vorlagen-ID muss der Sender-ID zugeordnet sein, die Sie für die Nachricht angegeben haben.

    Weitere Informationen zum Senden von SMS-Nachrichten an Empfänger in Indien finden Sie unter Anforderungen für die Registrierung der Absender-ID für Indien.

  10. Wählen Sie Publish message (Nachricht veröffentlichen) aus.

Tipp

Um SMS-Nachrichten von einer Ursprungsnummer zu senden, können Sie auch Ursprungsnummern im Navigationsbereich in der Amazon SNS-Konsole eingeben. Wählen Sie eine Ursprungsnummer, die in der Spalte Funktionen SMS enthält und wählen Sie dann Textnachricht veröffentlichen.

Senden einer Nachricht (SDKs)AWS

Um eine SMS-Nachricht mit einem der AWS SDKs zu senden, verwenden Sie den API-Vorgang in diesem SDK, der der Publish Anfrage in der Amazon SNS SNS-API entspricht. Mit dieser Anfrage können Sie eine SMS-Nachricht direkt an eine Telefonnummer senden. Sie können auch den MessageAttributes-Parameter verwenden, um Werte für die folgenden Attributnamen zu definieren:

AWS.SNS.SMS.SenderID

Eine benutzerdefinierte ID, die 3 bis 11 alphanumerische Zeichen oder Bindestriche (-) enthält, einschließlich mindestens einem Buchstaben und ohne Leerzeichen. Die Sender-ID wird auf dem Empfänger-Gerät als Sender der Nachricht angezeigt. Sie können z. B. Ihre Unternehmensmarke verwenden, um die Nachrichtenquelle leichter erkennbar zu machen.

Der Support für Sender-IDs variiert je nach Land oder Region. Beispiel: Für Nachrichten, die an eine US-Telefonnummer gesendet werden, wird keine Sender-ID angezeigt. Eine Liste der Länder und Regionen, die Sender-IDs unterstützen, finden Sie unter Unterstützte Länder und Regionen.

Wenn Sie keine Sender-ID angeben, erscheint eine Langwahlnummer als Sender-ID in den unterstützten Ländern oder Regionen. Für Länder oder Regionen, die eine alphabetische Sender-ID erfordern, wird NOTICE als Sender-ID angezeigt.

Dieses Attribut auf Nachrichtenebene ersetzt das DefaultSenderID-Attribut auf Kontoebene, das Sie bei der Nutzung der SetSMSAttributes-Anfrage festlegen.

AWS.MM.SMS.OriginationNumber

Eine benutzerdefinierte Zeichenfolge von 5 bis 14 Zahlen, die ein optionales vorzeitiges Pluszeichen (+) enthalten. Diese Zahlenfolge wird als Telefonnummer des Senders auf dem empfangenden Gerät angezeigt. Die Zeichenfolge muss mit einer Absendernummer übereinstimmen, die in Ihrem AWS Konto für das Zielland konfiguriert ist. Bei der Ausgangsnummer kann es sich um eine 10DLC-Nummer, eine gebührenfreie Nummer, einen person-to-person (P2P) -Langcode oder einen Kurzcode handeln. Weitere Informationen finden Sie unter Ursprungsnummern.

Wenn Sie keine Ursprungsnummer angeben, wählt Amazon SNS auf der Grundlage Ihrer AWS Kontokonfiguration eine Ursprungsnummer aus.

AWS.SNS.SMS.MaxPrice

Höchstpreis in USD, den Sie zu zahlen bereit sind, um die SMS-Nachricht zu senden. Wenn Amazon SNS festlegt, dass das Senden der Nachricht zu Kosten führen würde, die Ihren Maximalpreis übersteigen, wird die Nachricht nicht gesendet.

Dieses Attribut hat keine Auswirkung, wenn Ihre month-to-date SMS-Kosten das für das Attribut festgelegte Kontingent bereits überschritten haben. MonthlySpendLimit Sie können das MonthlySpendLimit-Attribut mit der SetSMSAttributes-Anfrage festlegen.

Wenn Sie die Nachricht an ein Amazon SNS-Thema senden, gilt bei jeder Nachrichtenübertragung an alle Telefonnummern, die das Thema abonniert haben, der Höchstpreis.

AWS.SNS.SMS.SMSType

Der Typ der gesendeten Nachricht:

  • Promotional (Standard): Unkritische Nachrichten, wie beispielsweise Marketing-Nachrichten.

  • Transactional – Sensible Nachrichten, die Kundentransaktionen unterstützen, wie beispielsweise One-Time-Passcodes für eine Multi-Faktor-Authentifizierung.

Dieses Attribut auf Nachrichtenebene ersetzt das DefaultSMSType-Attribut auf Kontoebene, das Sie bei der Nutzung der SetSMSAttributes-Anfrage festlegen.

AWS.MM.SMS.EntityId

Dieses Attribut ist nur für das Senden von SMS-Nachrichten an Empfänger in Indien erforderlich.

Das ist Ihre Entity ID oder Principal Entity (PE) -ID für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige Zeichenfolge von 1 bis 50 Zeichen, die die Telecom Regulatory Authority of India (TRAI) zur Identifizierung der Entität bereitstellt, die Sie bei der TRAI registriert haben.

AWS.MM.SMS.TemplateId

Dieses Attribut ist nur für das Senden von SMS-Nachrichten an Empfänger in Indien erforderlich.

Dies ist Ihre Vorlage für das Senden von SMS-Nachrichten an Empfänger in Indien. Diese ID ist eine eindeutige, von TRAI bereitgestellte Zeichenfolge mit 1 bis 50 Zeichen, die die Vorlage identifiziert, die Sie bei TRAI registriert haben. Die Vorlagen-ID muss der Sender-ID zugeordnet sein, die Sie für die Nachricht angegeben haben.

Senden einer Nachricht

In den folgenden Codebeispielen wird veranschaulicht, wie Sie SMS-Nachrichten über Amazon SNS veröffentlichen.

.NET
AWS SDK for .NET
Anmerkung

Es gibt noch mehr dazu GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

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}"); } } } }
  • Details zu API finden Sie unter Veröffentlichen in der AWS SDK for .NET -API-Referenz.

C++
SDK für C++
Anmerkung

Es gibt noch mehr GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

/** * 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(); }
  • Details zu API finden Sie unter Veröffentlichen in der AWS SDK for C++ -API-Referenz.

Java
SDK für Java 2.x
Anmerkung

Es gibt noch mehr GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

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); } } }
  • Details zu API finden Sie unter Veröffentlichen in der AWS SDK for Java 2.x -API-Referenz.

Kotlin
SDK für Kotlin
Anmerkung

Es gibt noch mehr GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

suspend fun pubTextSMS(messageVal: String?, phoneNumberVal: String?) { val request = PublishRequest { message = messageVal phoneNumber = phoneNumberVal } SnsClient { region = "us-east-1" }.use { snsClient -> val result = snsClient.publish(request) println("${result.messageId} message sent.") } }
  • Details zu API finden Sie unter Publish (Veröffentlichen) in der AWS -SDK-für-Kotlin-API-Referenz.

PHP
SDK für PHP
Anmerkung

Es gibt noch mehr GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

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()); }
Python
SDK für Python (Boto3)
Anmerkung

Es gibt noch mehr GitHub. Sie sehen das vollständige Beispiel und erfahren, wie Sie das AWS -Code-Beispiel-Repository einrichten und ausführen.

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
  • Details zu API finden Sie unter Veröffentlichen in der AWS -API-Referenz zu SDK for Python (Boto3).