Come posso inviare e-mail utilizzando la funzionalità Amazon SES quando la mia istanza RDS per SQL Server si trova in una sottorete pubblica o privata?

5 minuti di lettura
0

Voglio inviare e-mail utilizzando la funzionalità Amazon Simple Email Service (Amazon SES). Come posso farlo utilizzando un'istanza di Amazon Relational Database Service (Amazon RDS) per SQL Server ospitata in una sottorete pubblica o privata?

Breve descrizione

Per inviare e-mail con Amazon SES utilizzando un'istanza database di Amazon RDS per SQL Server, crea innanzitutto le tue credenziali SMPT (Simple Mail Transfer Protocol) utilizzando Amazon SES. Quindi, crea un gruppo di parametri da utilizzare con Database Mail. Se la tua istanza database è ospitata in una sottorete privata, configura l'endpoint VPC per l'utilizzo nel tuo profilo Database Mail.

Risoluzione

Configurazione di Amazon SES

1.    Apri la console Amazon SES, quindi scegli le impostazioni SMTP.

2.    Prendi nota dei valori riportati in Server name (Nome server) e Port (Porta).

3.    Scegli Create SMTP credentials (Crea credenziali SMTP). In questo modo si apre la console AWS Identity and Access Management (IAM).

4.    Per IAM User Name (Nome utente IAM), inserisci un utente o procedi con l'utente predefinito, quindi scegli Create (Crea).

5.    Scegli Download credentials (Scarica credenziali). Questa è l'unica volta in cui puoi scaricare le tue credenziali SMTP, quindi assicurati di salvarle in un posto sicuro.

6.    Apri la console Amazon SES, quindi scegli Email Addresses (Indirizzi e-mail).

7.    Scegli Verify a new email address (Verifica un nuovo indirizzo e-mail), quindi inserisci l'indirizzo e-mail dove desideri ricevere un'e-mail di conferma.

8.    Dopo aver confermato il tuo indirizzo e-mail, conferma che lo stato della verifica sia verificato.

Configurazione di un gruppo di parametri di Database Mail

Se hai già un gruppo di parametri personalizzato da usare con il tuo profilo Database Mail, salta questo passaggio.

1.    Apri la console Amazon RDS, quindi scegli Parameter groups (Gruppi di parametri) dal pannello di navigazione.

2.    Scegli Create parameter group (Crea gruppo di parametri).

3.    Per Parameter group family (Famiglia del gruppo di parametri), scegli la versione e l'edizione di SQL Server che stai utilizzando. Ad esempio, SQL Server 2016 Enterprise Edition utilizza sqlserver-ee-13.0.

4.    Inserisci un nome per il gruppo e una descrizione, quindi scegli Create (Crea).

5.    Nella pagina Parameter groups (Gruppi di parametri), scegli il gruppo che hai creato.

6.    Scegli Edit parameters (Modifica parametri) e seleziona la casella accanto al database mail xps.

7.    Per Values (Valori), scegli 1.

8.    Salva le modifiche.

Nota: se il gruppo di parametri è già associato all'istanza di RDS per SQL Server, salta questi passaggi.

9.    Nella console Amazon RDS, scegli Database, poi Modify (Modifica).

10.    In Database options (Opzioni database), scegli il parametro che hai configurato in precedenza, quindi scegli Continue (Continua).

11.    In Scheduling of modifications (Pianificazione delle modifiche), scegli Immediately (Immediatamente).

12.    Scegli Modify DB Instance (Modifica istanza database) per applicare le modifiche, quindi riavvia l'istanza.

Configurazione di Database Mail

Se l'istanza di RDS per SQL Server è ospitata in una sottorete pubblica, segui i passaggi in Configurazione di Database Mail.

Tuttavia, se la tua istanza si trova in una sottorete privata, potresti visualizzare questo errore quando configuri Database Mail:

"Impossibile inviare la posta ai destinatari a causa di un errore del server di posta. (Invio di posta tramite l'account 1 (2020-12-08T22:20:51). Messaggio di eccezione: impossibile connettersi al server di posta. Un tentativo di connessione è fallito perché la parte connessa non ha risposto correttamente dopo un certo periodo di tempo, oppure la connessione stabilita è fallita perché l'host connesso non ha dato come risposta 52.63.118.124:587."

Questo errore indica che l'istanza database non è in grado di raggiungere il server di posta. Per risolvere questo problema, crea un endpoint VPC per Amazon SES.

1.    Identifica l'IP privato della tua istanza.

2.    Crea un nuovo gruppo di sicurezza con una regola in entrata per il gruppo di sicurezza associato all'istanza**.** In Type (Tipo), scegli Custom TCP (TCP personalizzato). In Port range (Intervallo di porte), inserisci il numero di porta che desideri utilizzare per inviare e-mail. Puoi usare 25, 465, 587, 2465 o 2587. Per Source type (Tipo di origine), scegli Custom (Personalizzato). Per Source (Origine), inserisci l'IP privato dell'istanza di RDS per SQL Server.

3.    Crea un endpoint VPC. Dopo che l'endpoint VPC si troverà nello stato Disponibile, scegli l'endpoint, quindi copia la prima voce trovata nel campo DNS.

4.    Crea nuovamente l'account Database Mail:

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' ;

Nota: sostituisci @mailserver_name con il DNS ottenuto quando hai creato l'endpoint VPC.

5.    Se hai configurato correttamente Database Mail, quando esegui questo comando SQL, l'e-mail verrà inviata correttamente.

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.    Quindi, esegui questa procedura memorizzata per elencare e verificare tutti gli elementi e-mail. Nella colonna sent_status, verifica che lo stato sia su Inviato.

SELECT * FROM msdb.dbo.sysmail_allitems

Informazioni correlate

Gestione di un'istanza database per Amazon RDS Custom for SQL Server

Using Database Mail on Amazon RDS for SQL Server