Salta al contenuto

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

4 minuti di lettura
0

Desidero utilizzare Amazon Simple Email Service (Amazon SES) per inviare e-mail per un'istanza di Amazon Relational Database Service (Amazon RDS) per Microsoft SQL Server ospitata in una sottorete privata o pubblica.

Risoluzione

Configura Amazon SES

Utilizza la console Amazon SES per ottenere le credenziali SMTP (Simple Mail Transfer Protocol).

Per ricevere un'e-mail di conferma, completa i seguenti passaggi:

  1. Apri la console Amazon SES, quindi scegli Indirizzi e-mail.
  2. Scegli Verifica un nuovo indirizzo e-mail, quindi inserisci l'indirizzo e-mail sul quale desideri ricevere l'e-mail di conferma.
  3. Accertati che Stato della verifica riporti Verificato.

Configura un gruppo di parametri in Database Mail

Nota: se disponi già di un gruppo di parametri personalizzato da utilizzare con Database Mail, passa alla sezione Configura Database Mail. Se il gruppo di parametri è già associato all'istanza RDS per SQL Server, procedi con la serie di passaggi successiva in questa sezione.

Per creare un gruppo di parametri personalizzato, completa i passaggi seguenti:

  1. Apri la console Aurora e RDS.
  2. Scegli Gruppi di parametri, quindi seleziona Crea gruppo di parametri.
  3. Per Famiglia del gruppo di parametri, scegli la versione e l'edizione di SQL Server che utilizzi. Ad esempio, SQL Server 2016 Enterprise Edition utilizza sqlserver-ee-13.0.
  4. Inserisci un nome e una descrizione per il gruppo, quindi scegli Crea.
  5. Nella pagina Gruppi di parametri, scegli il gruppo.
  6. Scegli Modifica parametri, quindi seleziona database mail xps.
  7. Per Valori, scegli 1.
  8. Scegli Salva.

Per associare il gruppo di parametri all'istanza di RDS per SQL Server, completa i passaggi seguenti:

  1. Apri la console Aurora e RDS.
  2. Scegli Database, quindi seleziona Modifica.
  3. In Opzioni database, scegli il gruppo di parametri, quindi Continua.
  4. In Pianificazione delle modifiche, scegli Immediatamente.
  5. Scegli Modifica istanza database per applicare le modifiche, quindi riavvia l'istanza.

Configura Database Mail

Se l'istanza di RDS per SQL Server è ospitata in una sottorete pubblica, puoi configurare Database Mail.

Se l'istanza si trova in una sottorete privata, potresti ricevere il seguente messaggio di errore quando configuri Database Mail:

"The mail could not be sent to the recipients because of the mail server failure. Exception Message: Could not connect to mail server."

Se ricevi il messaggio di errore precedente, l'istanza database non può raggiungere il server di posta. Per risolvere il problema, crea un endpoint Amazon Virtual Private Cloud (Amazon VPC) per Amazon SES.

Completa i seguenti passaggi:

  1. Identifica l'indirizzo IP privato dell'istanza.

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

  3. Crea un endpoint VPC.

  4. Scegli l'endpoint, quindi annota il nome nel campo DNS.

  5. Crea nuovamente l'account Database Mail:

    use msdbgo
    
    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 nome DNS che hai annotato nel campo DNS.

  6. Esegui questo comando per verificare che Database Mail sia configurato 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';
    

    Nota: se Database Mail è configurato correttamente, l'e-mail viene inviata.

  7. Esegui la procedura archiviata seguente per verificare tutti gli elementi dell'e-mail:

    SELECT * FROM msdb.dbo.sysmail_allitems
    
  8. Nella colonna sent_status, verifica che lo stato sia Inviato.

Informazioni correlate

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

Utilizzo di Database Mail su Amazon RDS per SQL Server