Product

L’intégration native de Mailgun permet aux applications Meteor d’envoyer des emails gratuitement

Nous sommes de grands fans de Meteor depuis leur lancement, car il était évident qu'ils partageaient notre passion : faciliter le quotidien des équipes de développement.
Image pour L’intégration native de Mailgun permet aux applications Meteor d’envoyer des emails gratuitement

Nous sommes de grands fans de Meteor depuis leur lancement, car il était évident qu’ils partageaient notre passion : faciliter le quotidien des équipes de développement. C’est pourquoi nous tenions absolument à nous associer avec eux pour intégrer l’email transactionnel à leur plateforme. En ajoutant le package intelligent de Meteor dédié à l’email, vous accédez à l’email API de Meteor, compatible avec n’importe quel serveur SMTP standard. Et ce n’est pas tout : si vous déployez votre application sur la plateforme Meteor avec meteor deploy (comme des milliers d’autres le font déjà), elle est AUTOMATIQUEMENT assortie d’un compte Mailgun. Aucune configuration n’est requise pour commencer à envoyer des emails depuis l’application, qui arrivent bel et bien dans la boîte de réception de vos utilisateurs.

Si vous ne la connaissez pas encore, pourquoi envisager de développer votre prochaine application web sur Meteor ?

Meteor a été conçu pour résoudre des problèmes concrets que les équipes de développement d’applications web rencontrent au quotidien. Avec Meteor, vous écrivez l’intégralité de votre application en JavaScript, côté client comme côté serveur. Vous pouvez mettre une application en service rapidement, car vous n’avez à utiliser qu’un seul langage et qu’une seule API.

Meteor permet également de simplifier bien d’autres aspects complexes liés au développement d’applications web modernes et riches. La plateforme actualise automatiquement l’écran lorsque les données sous-jacentes changent, vous évitant ainsi d’avoir à écrire du code pour rafraîchir le modèle. Elle vous offre une API de base de données unique et cohérente pour le client et le serveur. De plus, elle inclut des mises à jour de code à chaud (hot code pushes), ce qui vous permet de déployer en continu des modifications sur votre application sans interrompre les sessions de vos utilisateurs connectés. (Ceci prend de plus en plus d’importance, car les applications s’exécutent de plus en plus dans le navigateur plutôt que sur le serveur.)

Comment envoyer des emails avec Meteor via Mailgun

Au début de cet article, nous avons mentionné que Meteor propose une intégration native pour Mailgun. Cela signifie que lorsque vous ajoutez le email package à votre projet Meteor et que vous utilisez meteor deploy, vous pourrez automatiquement envoyer jusqu’à 300 emails par jour via Mailgun, sans avoir à créer de compte Mailgun distinct ni à saisir d’identifiants SMTP. Il suffit d’utiliser la fonction email.send et de définir la structure de l’email (to:, from:, subject:; text: ou html:). Par exemple, pour envoyer un simple email au format texte, vous pourriez utiliser :

                                

                                    Email.send({
    from: fromEmail,
    to: toEmail,
    replyTo: fromEmail,
    subject: "That was easy",
    text: "If you're reading this, sending an email through Meteor really was that easy"
  });
                                
                            

Si vous souhaitez envoyer un email depuis le client plutôt que depuis le serveur, c’est également possible. Il vous suffit de définir une méthode sur le serveur et de l’appeler depuis le client. Cela s’avère utile, par exemple, si vous développez une application sociale où les actions qu’un utilisateur effectue côté client doivent déclencher l’envoi d’un email à d’autres utilisateurs, de la même manière que Facebook permet aux utilisateurs de recevoir un email lorsque leurs amis aiment ou commentent une publication.

                                

                                    // In your server code: define a method that the client can call
Meteor.methods({
  sendEmail: function (to, subject, text) {
    // Let other method calls from the same client start running,
    // without waiting for the email sending to complete.
    this.unblock();

    // don’t allow sending email unless the user is logged in
    if (!Meteor.user())
      throw new Meteor.Error(403, “not logged in”);

    // and here is where you can throttle the number of emails this user
    // is allowed to send per day

    Email.send({
      to: to,
      from: Meteor.user().emails[0].address,
      subject: subject,
      text: text
    });
  }
});

// In your client code: asynchronously send an email
Meteor.call('sendEmail',
            'alice@example.com',
            'Hello from Bob!',
            'This is a test of Email.send.');
                                
                            

Dans une application réelle, vous devrez veiller à limiter le nombre d’emails qu’un client peut envoyer afin d’éviter que votre serveur ne soit utilisé comme relais par des spammeurs. En appelant la méthode email.send au sein d’une méthode sur le serveur, vous pouvez facilement gérer le contrôle d’accès et la limitation de débit pour les clients.

Envoyer plus de 300 emails par jour via Meteor

Si vous souhaitez envoyer plus de 300 emails par jour via Meteor, c’est également possible : il vous suffit de créer un compte Mailgun. Nous publierons bientôt un autre article pour expliquer le fonctionnement de ce processus et la façon dont nous envisageons de renforcer cette intégration à l’avenir, à mesure que Meteor se dirige vers une disponibilité générale.

Qu’aimeriez-vous voir dans une intégration Mailgun-Meteor ? Laissez vos idées dans les commentaires de ce blog ou sur Hacker News. Nous serions ravis de les découvrir.