Come inviare messaggi di posta elettronica usando SendGrid da JavaHow to Send Email Using SendGrid from Java

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 in Java.The samples are written in Java. 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 di messaggi di 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, visitare il sito http://sendgrid.com.For more information, see http://sendgrid.com.

Creare 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].

Procedura: Usare le librerie javax.mailHow to: Use the javax.mail libraries

Ottenere le librerie javax.mail, ad esempio da http://www.oracle.com/technetwork/java/javamail e importarle nel codice.Obtain the javax.mail libraries, for example from http://www.oracle.com/technetwork/java/javamail and import them into your code. Ad alto livello, la procedura per usare la libreria javax.mail per l'invio di messaggio di posta elettronica mediante SMTP è la seguente:At a high-level, the process for using the javax.mail library to send email using SMTP is to do the following:

  1. Specificare i valori SMTP, compreso il server SMTP, che per SendGrid è smtp.sendgrid.net.Specify the SMTP values, including the SMTP server, which for SendGrid is smtp.sendgrid.net.
        import java.util.Properties;
        import javax.activation.*;
        import javax.mail.*;
        import javax.mail.internet.*;

        public class MyEmailer {
           private static final String SMTP_HOST_NAME = "smtp.sendgrid.net";
           private static final String SMTP_AUTH_USER = "your_sendgrid_username";
           private static final String SMTP_AUTH_PWD = "your_sendgrid_password";

           public static void main(String[] args) throws Exception{
               new MyEmailer().SendMail();
           }

           public void SendMail() throws Exception
           {
              Properties properties = new Properties();
                 properties.put("mail.transport.protocol", "smtp");
                 properties.put("mail.smtp.host", SMTP_HOST_NAME);
                 properties.put("mail.smtp.port", 587);
                 properties.put("mail.smtp.auth", "true");
                 // …
  1. Estendere la classe javax.mail.Authenticator e nella propria implementazione del metodo getPasswordAuthentication restituire il nome utente e la password di SendGrid.Extend the javax.mail.Authenticator class, and in your implementation of the getPasswordAuthentication method, return your SendGrid user name and password.

    private class SMTPAuthenticator extends javax.mail.Authenticator {
    public PasswordAuthentication getPasswordAuthentication() {
       String username = SMTP_AUTH_USER;
       String password = SMTP_AUTH_PWD;
       return new PasswordAuthentication(username, password);
    }
    
  2. Creare una sessione di posta autenticata mediante un oggetto javax.mail.Session .Create an authenticated email session through a javax.mail.Session object.

    Authenticator auth = new SMTPAuthenticator();
    Session mailSession = Session.getDefaultInstance(properties, auth);
    
  3. Creare il messaggio e assegnare i valori relativi ai campi A, Da, Oggetto e contenuto.Create your message and assign To, From, Subject and content values. Questa operazione è illustrata nella sezione Procedura: Creare un'e-mail .This is shown in the How To: Create an Email section.
  4. Inviare il messaggio tramite un oggetto javax.mail.Transport .Send the message through a javax.mail.Transport object. Questa operazione è illustrata nella sezione [Procedura: Inviare un messaggio di posta elettronica][Procedura: Inviare un messaggio di posta elettronica].This is shown in the [How To: Send an Email][How to: Send an Email] section.

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

Il codice seguente illustra come specificare i valori per un messaggio di posta elettronica.The following shows how to specify values for an email.

MimeMessage message = new MimeMessage(mailSession);
Multipart multipart = new MimeMultipart("alternative");
BodyPart part1 = new MimeBodyPart();
part1.setText("Hello, Your Contoso order has shipped. Thank you, John");
BodyPart part2 = new MimeBodyPart();
part2.setContent(
    "<p>Hello,</p>
    <p>Your Contoso order has <b>shipped</b>.</p>
    <p>Thank you,<br>John</br></p>",
    "text/html");
multipart.addBodyPart(part1);
multipart.addBodyPart(part2);
message.setFrom(new InternetAddress("john@contoso.com"));
message.addRecipient(Message.RecipientType.TO,
   new InternetAddress("someone@example.com"));
message.setSubject("Your recent order");
message.setContent(multipart);

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

Il codice seguente illustra come inviare un messaggio di posta elettronica.The following shows how to send an email.

Transport transport = mailSession.getTransport();
// Connect the transport object.
transport.connect();
// Send the message.
transport.sendMessage(message, message.getAllRecipients());
// Close the connection.
transport.close();

Procedura: Aggiungere un allegatoHow to: Add an attachment

Il codice seguente illustra come aggiungere un allegato.The following code shows you how to add an attachment.

// Local file name and path.
String attachmentName = "myfile.zip";
String attachmentPath = "c:\\myfiles\\";
MimeBodyPart attachmentPart = new MimeBodyPart();
// Specify the local file to attach.
DataSource source = new FileDataSource(attachmentPath + attachmentName);
attachmentPart.setDataHandler(new DataHandler(source));
// This example uses the local file name as the attachment name.
// They could be different if you prefer.
attachmentPart.setFileName(attachmentName);
multipart.addBodyPart(attachmentPart);

Procedura: Usare filtri per abilitare piè di pagina, monitoraggio e analisiHow to: Use filters to enable footers, tracking, and analytics

SendGrid fornisce funzionalità di posta elettronica aggiuntive attraverso l'utilizzo 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.

  • Il codice seguente illustra come inserire un filtro per piè di pagina che provoca la visualizzazione di testo in formato HTML in fondo al messaggio di posta elettronica inviato.The following shows how to insert a footer filter that results in HTML text appearing at the bottom of the email being sent.

    message.addHeader("X-SMTPAPI",
        "{\"filters\":
        {\"footer\":
        {\"settings\":
        {\"enable\":1,\"text/html\":
        \"<html><b>Thank you</b> for your business.</html>\"}}}}");
    
  • Un altro esempio di filtro è quello per il monitoraggio dei clic.Another example of a filter is click tracking. Si supponga ad esempio che il testo del messaggio di posta elettronica contenga un collegamento ipertestuale come il seguente e che si voglia monitorare il tasso di clic:Let’s say that your email text contains a hyperlink, such as the following, and you want to track the click rate:

    messagePart.setContent(
        "Hello,
        <p>This is the body of the message. Visit
        <a href='http://www.contoso.com'>http://www.contoso.com</a>.</p>
        Thank you.",
        "text/html");
    
  • Per abilitare il monitoraggio dei clic, usare il codice seguente:To enable the click tracking, use the following code:

    message.addHeader("X-SMTPAPI",
        "{\"filters\":
        {\"clicktrack\":
        {\"settings\":
        {\"enable\":1}}}}");
    

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, per specificare indirizzi Rispondi a , usare il codice seguente:For example, to specify ReplyTo addresses, use the following:

InternetAddress addresses[] =
    { new InternetAddress("john@contoso.com"),
      new InternetAddress("wendy@contoso.com") };

message.setReplyTo(addresses);

Per aggiungere un destinatario Cc , usare il codice seguente:To add a Cc recipient, use the following:

message.addRecipient(Message.RecipientType.CC, new
InternetAddress("john@contoso.com"));

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, è possibile usare i collegamenti seguenti per ottenere altre informazioni.Now that you’ve learned the basics of the SendGrid Email service, follow these links to learn more.