Come inviare messaggi di posta elettronica usando SendGrid da Node.jsHow to Send Email Using SendGrid from Node.js

Questa guida illustra come eseguire attività di programmazione comuni con il servizio di posta elettronica SendGrid in Azure.This guide demonstrates how to perform common programming tasks with the SendGrid email service on Azure. Gli esempi sono scritti usando l'API Node.js.The samples are written using the Node.js API. Gli scenari presentati includono creazione di messaggi di posta elettronica, invio di messaggi di posta elettronica, aggiunta di allegati, uso di filtri e aggiornamento delle proprietà.The scenarios covered include constructing email, sending email, adding attachments, using filters, and updating properties. Per altre informazioni su SendGrid e sull'invio della posta elettronica, vedere la sezione Passaggi successivi .For more information on SendGrid and sending email, see the Next Steps section.

Informazioni sul servizio di posta elettronica SendGridWhat is the SendGrid Email Service?

SendGrid è un servizio di posta elettronica basato sul cloud che offre recapito affidabile di messaggi di posta elettronica transazionali, scalabilità e analisi in tempo reale, oltre ad API flessibili che agevolano l'integrazione personalizzata.SendGrid is a [cloud-based email service] that provides reliable [transactional email delivery], scalability, and real-time analytics along with flexible APIs that make custom integration easy. Gli scenari di utilizzo comuni di SendGrid includono:Common SendGrid usage scenarios include:

  • Invio automatico di ricevute ai clientiAutomatically sending receipts to customers
  • Amministrazione di liste di distribuzione per l'invio mensile ai clienti di volantini elettronici e offerte specialiAdministering distribution lists for sending customers monthly e-fliers and special offers
  • Raccolta di metriche in tempo reale per elementi quali indirizzi di posta elettronica bloccati e velocità di risposta al clienteCollecting real-time metrics for things like blocked e-mail, and customer responsiveness
  • Generazione di report per agevolare l'identificazione delle tendenzeGenerating reports to help identify trends
  • Inoltro di richieste dei clientiForwarding customer inquiries
  • Notifiche di posta elettronica dall'applicazioneEmail notifications from your application

Per altre informazioni, vedere https://sendgrid.com.For more information, see https://sendgrid.com.

Creazione di un account SendGridCreate a SendGrid Account

I clienti di Azure possono sbloccare 25.000 messaggi di posta elettronica gratuiti ogni mese.Azure customers can unlock 25,000 free emails each month. Questi 25.000 messaggi gratuiti mensili offrono l'accesso a funzionalità avanzate di creazione di report e analisi e a tutte le API (Web, SMTP, Event, Parse e altre).These 25,000 free monthly emails will give you access to advanced reporting and analytics and all APIs (Web, SMTP, Event, Parse and more). Per informazioni sui servizi aggiuntivi offerti da SendGrid, vedere la pagina delle soluzioni di SendGrid.For information about additional services provided by SendGrid, visit the SendGrid Solutions page.

Per iscriversi a un account SendGridTo sign up for a SendGrid account

  1. Accedere al portale di gestione di Azure.Log in to the Azure Management Portal.
  2. Fare clic su Nuovo dal menu a sinistra.In the menu on the left, click New.

    command-bar-new

  3. Fare clic su Componenti aggiuntivi e quindi SendGrid Email Delivery (Recapito email di SendGrid).Click Add-ons and then SendGrid Email Delivery.

    sendgrid-store

  4. Completare il modulo di iscrizione e selezionare Crea.Complete the signup form and select Create.

    creazione di SendGrid

  5. Immettere un nome per identificare il proprio servizio SendGrid nelle impostazioni di Azure.Enter a Name to identify your SendGrid service in your Azure settings. I nomi devono essere composti da un numero di caratteri compreso tra 1 e 100 e possono includere solo caratteri alfanumerici, trattini, punti e caratteri di sottolineatura.Names must be between 1 and 100 characters in length and contain only alphanumeric characters, dashes, dots, and underscores. Il nome deve essere univoco nell'elenco di elementi di Azure Store sottoscritti.The name must be unique in your list of subscribed Azure Store Items.
  6. Immettere e confermare la password.Enter and confirm your Password.
  7. Scegliere la propria sottoscrizione.Choose your Subscription.
  8. Creare un nuovo gruppo di risorse o selezionarne uno esistente.Create a new Resource group or use an existing one.
  9. Nella sezione Piano tariffario selezionare il piano di SendGrid a cui si desidera iscriversi.In the Pricing tier section select the SendGrid plan you want to sign up for.

    prezzi di SendGrid

  10. Se disponibile, immettere un codice di promozione.Enter a Promotion Code if you have one.
  11. Inserire le informazioni di contatto.Enter your Contact Information.
  12. Riesaminare e accettare le Note legali.Review and accept the Legal terms.
  13. Dopo aver confermato l'acquisto verrà visualizzato un popup che indica che la distribuzione è riuscita e il proprio account verrà elencato nella sezione Tutte le risorse.After confirming your purchase you will see a Deployment Succeeded pop-up and you will see your account listed in the All resources section.

    all-resources

    Dopo avere completato l'acquisto e avere fatto clic sul pulsante Gestisci per avviare il processo di verifica dei messaggi di posta elettronica, SendGrid invierà un'email in cui si chiede di verificare l'account.After you have completed your purchase and clicked the Manage button to initiate the email verification process, you will receive an email from SendGrid asking you to verify your account. Se non si riceve questa email o se si hanno problemi nella verifica dell'account, consultare le domande frequenti.If you do not receive this email, or have problems verifying your account, please see this FAQ.

    manage

    È possibile inviare fino a 100 email al giorno fino a quando non si è verificato l'account.You can only send up to 100 emails/day until you have verified your account.

    Per modificare il piano di sottoscrizione o visualizzare le impostazioni di contatto di SendGrid, fare clic sul nome del servizio SendGrid per aprire il dashboard del Marketplace di SendGrid.To modify your subscription plan or see the SendGrid contact settings, click the name of your SendGrid service to open the SendGrid Marketplace dashboard.

    Impostazioni

    Per inviare un'email tramite SendGrid, è necessario specificare la chiave API.To send an email using SendGrid, you must supply your API Key.

Per trovare la chiave API per SendGridTo find your SendGrid API Key

  1. Fare clic su Manage.Click Manage.

    manage

  2. Nel dashboard di SendGrid, selezionare Impostazioni e quindi Chiavi API nel menu a sinistra.In your SendGrid dashboard, select Settings and then API Keys in the menu on the left.

    chiavi API

  3. Fare clic sul menu a discesa Crea chiave API e selezionare General API Key (Chiave API generale).Click the Create API Key dropdown and select General API Key.

    chiave API generale

  4. Indicare almeno il nome di questa chiave e garantire l'accesso completo a Mail Send (Invio email) e selezionare Salva.At a minimum, provide the Name of this key and provide full access to Mail Send and select Save.

    access

  5. L'API verrà visualizzata una sola volta a questo punto.Your API will be displayed at this point one time. Assicurarsi di salvarla in modo sicuro.Please be sure to store it safely.

Per individuare le credenziali di SendGridTo find your SendGrid credentials

  1. Fare clic sull'icona della chiave per trovare il nome utente.Click the key icon to find your Username.

    key

  2. La password è quella specificata al momento della configurazione.The password is the one you chose at setup. È possibile selezionare Cambia password o Reimposta password per apportare modifiche.You can select Change password or Reset password to make any changes.

Per gestire le impostazioni di recapito della posta, fare clic sul pulsante Gestisci.To manage your email deliverability settings, click the Manage button. Si verrà reindirizzati al dashboard di SendGrid.This will redirect to your SendGrid dashboard.

![manage][manage]

For more information on sending email through SendGrid, visit the [Email API Overview][Email API Overview].

Riferimento al modulo SendGrid per Node.jsReference the SendGrid Node.js Module

Il modulo SendGrid per Node.js può essere installato con il programma di gestione dei pacchetti per Node.js (npm) usando il comando seguente:The SendGrid module for Node.js can be installed through the node package manager (npm) by using the following command:

npm install sendgrid

Dopo l'installazione, è possibile includere il modulo nell'applicazione usando il comando seguente:After installation, you can require the module in your application by using the following code:

var sendgrid = require('sendgrid')(sendgrid_username, sendgrid_password);

Il modulo SendGrid esporta le funzioni SendGrid ed Email.The SendGrid module exports the SendGrid and Email functions. SendGrid è responsabile dell'invio di e-mail tramite API Web, mentre Email incapsula un'e-mail.SendGrid is responsible for sending email through Web API, while Email encapsulates an email message.

Procedura: Creare un messaggio di posta elettronicaHow to: Create an Email

Creare un messaggio di posta elettronica usando il modulo SendGrid è una procedura in due fasi. La prima consiste nel creare il messaggio usando la funzione Email, la seconda nell'inviarlo usando la funzione SendGrid.Creating an email message using the SendGrid module involves first creating an email message using the Email function, and then sending it using the SendGrid function. Di seguito è riportato un esempio di codice per la creazione di un nuovo messaggio mediante la funzione Email:The following is an example of creating a new message using the Email function:

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

È inoltre possibile specificare un messaggio HTML per i client che li supportano, configurando la proprietà html.You can also specify an HTML message for clients that support it by setting the html property. ad esempio:For example:

html: This is a sample <b>HTML<b> email message.

Impostando sia la proprietà text che la proprietà html è possibile implementare il fallback graduale a contenuto testuale per i client che non supportano i messaggi HTML.Setting both the text and html properties provides graceful fallback to text content for clients that cannot support HTML messages.

Per altre informazioni su tutte le proprietà supportate dalla funzione Email, vedere sendgrid-nodejs.For more information on all properties supported by the Email function, see sendgrid-nodejs.

Procedura: Inviare un messaggio di posta elettronicaHow to: Send an Email

Dopo aver creato un messaggio di posta elettronica usando la funzione Email, è possibile inviarlo tramite SMTP o con l'API Web fornita da SendGrid.After creating an email message using the Email function, you can send it using the Web API provided by SendGrid.

API WebWeb API

sendgrid.send(email, function(err, json){
    if(err) { return console.error(err); }
    console.log(json);
});

Nota

Sebbene gli esempi precedenti illustrino il passaggio di un oggetto di posta elettronica e una funzione di richiamata, è inoltre possibile richiamare direttamente la funzione send specificando direttamente le proprietà dei messaggi di posta elettronica.While the above examples show passing in an email object and callback function, you can also directly invoke the send function by directly specifying email properties. Ad esempio:For example:

sendgrid.send({
to: 'john@contoso.com',
from: 'anna@contoso.com',
subject: 'test mail',
text: 'This is a sample email message.'
});

Procedura: Aggiungere un allegatoHow to: Add an Attachment

Per aggiungere allegati a un messaggio, specificare i nomi e i percorsi dei file nella proprietà files.Attachments can be added to a message by specifying the file name(s) and path(s) in the files property. Nell'esempio seguente viene illustrato l'invio di un allegato:The following example demonstrates sending an attachment:

sendgrid.send({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.',
    files: [
        {
            filename:     '',           // required only if file.content is used.
            contentType:  '',           // optional
            cid:          '',           // optional, used to specify cid for inline content
            path:         '',           //
            url:          '',           // == One of these three options is required
            content:      ('' | Buffer) //
        }
    ],
});

Nota

Quando si usa la proprietà files, il file deve essere accessibile tramite fs.readFile.When using the files property, the file must be accessible through fs.readFile. Se il file da allegare è ospitato in Archiviazione di Azure, ad esempio in un contenitore BLOB, prima di poterlo inviare come allegato usando la proprietà files è necessario copiarlo nell'archiviazione locale o in un'unità Azure.If the file you wish to attach is hosted in Azure Storage, such as in a Blob container, you must first copy the file to local storage or to an Azure drive before it can be sent as an attachment using the files property.

Procedura: Usare filtri per abilitare piè di pagina e monitoraggioHow to: Use Filters to Enable Footers and Tracking

SendGrid fornisce funzionalità di posta elettronica aggiuntive attraverso l'uso di filtri.SendGrid provides additional email functionality through the use of filters. Si tratta di impostazioni che è possibile aggiungere a un messaggio di posta elettronica per abilitare funzionalità specifiche, ad esempio il monitoraggio del clic, Google Analytics, il monitoraggio delle sottoscrizioni e così via.These are settings that can be added to an email message to enable specific functionality such as enabling click tracking, Google analytics, subscription tracking, and so on. Per un elenco completo dei filtri, vedere le impostazioni dei filtri.For a full list of filters, see Filter Settings.

È possibile applicare filtri a un messaggio usando la proprietà filters.Filters can be applied to a message by using the filters property. Ogni filtro è specificato da un hash che contiene impostazioni specifiche del filtro.Each filter is specified by a hash containing filter-specific settings. Negli esempi seguenti vengono illustrati i filtri per abilitare il piè di pagina e per il monitoraggio dei clic:The following examples demonstrate the footer and click tracking filters:

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

email.setFilters({
    'footer': {
        'settings': {
            'enable': 1,
            'text/plain': 'This is a text footer.'
        }
    }
});

sendgrid.send(email);

Monitoraggio dei clicClick Tracking

var email = new sendgrid.Email({
    to: 'john@contoso.com',
    from: 'anna@contoso.com',
    subject: 'test mail',
    text: 'This is a sample email message.'
});

email.setFilters({
    'clicktrack': {
        'settings': {
            'enable': 1
        }
    }
});

sendgrid.send(email);

Procedura: Aggiornare le proprietà dei messaggi di posta elettronicaHow to: Update Email Properties

È possibile sovrascrivere alcune proprietà delle e-mail usando set*Property* oppure aggiungerle usando add*Property.Some email properties can be overwritten using **setProperty*** or appended using add*Property*. Ad esempio, è possibile aggiungere altri destinatari usandoFor example, you can add additional recipients by using

email.addTo('jeff@contoso.com');

oppure impostare un filtro utilizzandoor set a filter by using

email.addFilter('footer', 'enable', 1);
email.addFilter('footer', 'text/html', '<strong>boo</strong>');

Per altre informazioni, vedere sendgrid-nodejs.For more information, see sendgrid-nodejs.

Procedura: Usare servizi aggiuntivi forniti da SendGridHow to: Use Additional SendGrid Services

SendGrid offre API basate sul Web che è possibile usare per sfruttare altre funzionalità di SendGrid dall'applicazione Azure.SendGrid offers web-based APIs that you can use to leverage additional SendGrid functionality from your Azure application. Per informazioni dettagliate, vedere la documentazione sull'API SendGrid.For full details, see the SendGrid API documentation.

Passaggi successiviNext Steps

A questo punto, dopo aver appreso le nozioni di base del servizio di posta elettronica SendGrid, usare i collegamenti seguenti per altre informazioni.Now that you've learned the basics of the SendGrid Email service, follow these links to learn more.