Wie kann ich E-Mails mit dem Amazon SES Feature senden, wenn sich meine RDS für SQL Server Instance in einem öffentlichen oder privaten Subnetz befindet?

Lesedauer: 5 Minute
0

Ich möchte E-Mails mit dem Amazon Simple Email Service (Amazon SES) Feature senden. Ich möchte eine Amazon Relational Database Service (Amazon RDS) für SQL Server Instance verwenden, die in einem privaten oder öffentlichen Subnetz gehostet wird.

Kurzbeschreibung

Um E-Mails mit Amazon SES mithilfe einer Amazon RDS für SQL Server DB Instance zu versenden, erstellen Sie zunächst Ihre Anmeldeinformationen für Simple Mail Transfer Protocol (SMTP) mit Amazon SES. Erstellen Sie dann eine Parametergruppe, die mit Datenbank-E-Mail verwendet werden soll. Wenn Ihre DB Instance in einem privaten Subnetz gehostet wird, konfigurieren Sie den VPC-Endpunkt für die Verwendung in Ihrem Datenbank-Mail-Profil.

Behebung

Amazon SES einrichten

1.Öffnen Sie die Amazon-SES-Konsole und wählen Sie dann SMTP-Einstellungen.

2.Notieren Sie sich die Werte, die für Servername und Port aufgeführt sind.

3.Wählen Sie SMTP-Anmeldeinformationen erstellen aus. Das öffnet die AWS Identity and Access Management (IAM)-Konsole.

4.Geben Sie für IAM-Benutzername einen Benutzer ein, oder fahren Sie mit dem Standardbenutzer fort, und wählen Sie dann Erstellen.

5.Wählen Sie Anmeldeinformationen herunterladen aus. Dies ist das einzige Mal, dass Sie Ihre SMTP-Anmeldeinformationen herunterladen können. Bewahren Sie sie daher an einem sicheren Ort auf.

6.Öffnen Sie die Amazon-SES-Konsole und wählen Sie dann E-Mail-Adressen aus.

7.Wählen Sie Neue E-Mail-Adresse bestätigen aus und geben Sie dann die E-Mail-Adresse ein, an die Sie eine Bestätigungs-E-Mail erhalten möchten.

8.Nachdem Sie Ihre E-Mail-Adresse bestätigt haben, bestätigen Sie, dass Ihr Bestätigungsstatus bestätigt ist.

Eine Datenbank-E-Mail-Parametergruppe einrichten

Wenn Sie bereits über eine benutzerdefinierte Parametergruppe verfügen, die Sie mit Ihrem Datenbank-E-Mail-Profil verwenden können, überspringen Sie diesen Schritt.

1.Öffnen Sie die Amazon-RDS-Konsole und wählen Sie dann im Navigationsbereich die Option Parametergruppen aus.

2.Wählen Sie Parametergruppe erstellen aus.

3.Wählen Sie für Parametergruppenfamilie die Version und Edition von SQL Server aus, die Sie verwenden. Beispielsweise verwendet SQL Server 2016 Enterprise Edition sqlserver-ee-13.0.

4.Geben Sie einen Gruppennamen und eine Beschreibung ein, und wählen Sie dann Erstellen.

5.Wählen Sie auf der Seite Parametergruppen die Gruppe aus, die Sie erstellt haben.

6.Wählen Sie Parameter bearbeiten aus und aktivieren Sie das Kästchen neben Datenbank-Mail xps.

7.Wählen Sie für Werte den Wert 1 aus.

8.Speichern Sie Ihre Änderungen.

Hinweis: Wenn die Parametergruppe bereits mit Ihrer RDS für SQL Server Instance verknüpft ist, überspringen Sie diese Schritte.

9.Wählen Sie in der Amazon-RDS-Konsole Datenbank und anschließend Ändern aus.

10.Wählen Sie unter Datenbankoptionen den Parameter aus, den Sie zuvor konfiguriert haben, und klicken Sie dann auf Weiter.

11.Wählen Sie unter Planung von Änderungen die Option Sofort aus.

12.Wählen Sie DB Instance ändern aus, um die Änderungen zu übernehmen, und starten Sie dann Ihre Instance neu.

Datenbank-E-Mail konfigurieren

Wenn Ihre RDS für SQL Server Instance in einem öffentlichen Subnetz gehostet wird, folgen Sie den Schritten unter Datenbank-E-Mail konfigurieren.

Wenn sich Ihre Instance jedoch in einem privaten Subnetz befindet, wird möglicherweise dieser Fehler angezeigt, wenn Sie Datenbank-E-Mail konfigurieren:

„The mail could not be sent to the recipients because of the mail server failure.(Sending Mail using Account 1 (2020-12-08T22:20:51). Exception Message: Could not connect to mail server. (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 52.63.118.124:587).“

Dieser Fehler weist darauf hin, dass Ihre DB Instance den Mailserver nicht erreichen kann. Um dieses Problem zu lösen, erstellen Sie einen VPC-Endpunkt für Amazon SES.

1.Identifizieren Sie die private IP Ihrer Instance.

2.Erstellen Sie eine neue Sicherheitsgruppe mit einer Regel für eingehenden Datenverkehr für die Sicherheitsgruppe, die Ihrer Instance zugeordnet ist**.** Wählen Sie als Typ Custom TCP aus. Geben Sie unter Portbereich die Portnummer ein, die Sie zum Senden von E-Mails verwenden möchten. Sie können 25, 465, 587, 2465 oder 2587 verwenden. Wählen Sie für Quelltyp die Option Benutzerdefiniert aus. Geben Sie unter Quelle die private IP Ihrer RDS für SQL Server Instance ein.

3.Erstellen Sie einen VPC-Endpunkt. Wenn sich der VPC-Endpunkt im Status „Verfügbar“ befindet, wählen Sie den Endpunkt aus und kopieren Sie dann den ersten Eintrag, der unter dem DNS-Feld gefunden wurde.

4.Erstellen Sie das Datenbank-E-Mail-Konto erneut:

use msdb
go

EXECUTE msdb.dbo.sysmail_add_account_sp
@account_name = 'Acc1',
@description = 'Mail account for sending outgoing
notifications.',
@email_address = 'example@example.com',
@display_name = 'Automated Mailer',
@mailserver_name =
'vpce-0a9cxxxxxxxxxxxxx-xxxxxxxx.email-smtp.ap-southeast-2.vpce.amazonaws.com',
<---- VPC endpoint created in previous step
@port = 587,
@enable_ssl = 1,
@username = 'SMTP-username', <---- For user name and
password, please use the SES credentials
@password = 'SMTP-password' ;

**Hinweis:**Ersetzen Sie @mailserver_name durch das DNS, das Sie bei der Erstellung des VPC-Endpunkts erhalten haben.

5.Wenn Sie Datenbank-E-Mail korrekt konfiguriert haben, wird die E-Mail erfolgreich gesendet, wenn Sie diesen SQL-Befehl ausführen.

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'Notifications', @recipients = 'success@simulator.amazonses.com',
@body = 'The database mail configuration was completed successfully.',
@subject = 'Automated Success Message';

6.Führen Sie als Nächstes diese gespeicherte Prozedur aus, um alle E-Mail-Elemente aufzulisten und zu überprüfen. Vergewissern Sie sich in der Spalte sent_status, dass der Status Gesendet ist.

SELECT * FROM msdb.dbo.sysmail_allitems

Ähnliche Informationen

Verwalten einer Amazon RDS Custom für SQL Server DB Instance

Verwenden von Datenbank-E-Mail auf Amazon RDS für SQL Server