8
votes

Comment envoyer un e-mail avec Angular 7

J'utilise Angular7 je viens de commencer à développer des applications Je veux savoir comment envoyer des e-mails à partir d'applications angular7. Veuillez partager un exemple de code


3 commentaires

Pour autant que je sache, il est impossible de le faire tout de suite à partir de js, mais vous pouvez écrire un serveur Web avec http api ou utiliser un serveur tiers déjà existant qui le ferait, et il vous suffit de l' appeler à partir de votre application angulaire .


Je pensais que ce n'était pas possible avec angulaire


Angular est un framework de vue frontale et n'est pas intelligent de transaction de serveur mais plutôt intelligent de navigateur. Pour cette question, les navigateurs ne sont pas capables d'envoyer des e-mails si anguleux ne peuvent malheureusement pas envoyer d'e-mail avec leurs propres API intégrées. Vous avez besoin d'un service back-end intelligent pour implémenter les transactions par e-mail. Cela dépendra de ce que vous souhaitez utiliser. Implémentez des API pour prendre en charge ces transactions.


4 Réponses :


8
votes

Angular travaillant côté client et pour envoyer des e-mails, vous avez besoin d'un serveur, donc je pense qu'il est impossible pour l'instant d'envoyer des e-mails en utilisant uniquement angular, vous devez utiliser une application côté serveur pour envoyer des e-mails.


0 commentaires

3
votes

Il est impossible d'envoyer des e-mails via Angular. cependant, vous pouvez créer le serveur express Node Js et à partir de là, vous pouvez envoyer les e-mails. J'ai utilisé le projet suivant pour mettre en œuvre cela: https://github.com/niftylettuce/email-templates


1 commentaires

Salut, savez-vous comment utiliser cela en tapuscrit? je ne sais pas comment importer EmailTemplate ... merci.



1
votes

Vous devez comprendre la nature de l'angulaire en premier lieu. Mais en supposant que vous êtes nouveau dans angular, vous devez comprendre que Angular n'est qu'un framework de vue frontale. Il n'a donc pas la capacité d'envoyer des e-mails par lui-même. Pour rendre les transactions angulaires capables, vous avez besoin d'un système backend capable d'envoyer des e-mails en son nom.

Ceci est réalisé grâce aux API Web. Vous devez donc créer une API où angular peut informer l'API d'envoyer des e-mails. En ce qui concerne mes connaissances, c'est la méthode qui, à ma connaissance, est la plus largement utilisée.


1 commentaires

Pouvez-vous me donner une idée comment créer une API et l'appeler pour envoyer un e-mail



6
votes

Vous pouvez utiliser un fournisseur BaaS (Backend as a service), comme Formspree . Il est assez simple à utiliser et vous permet d'envoyer des e-mails sans avoir à écrire ou configurer un backend. Tout ce que vous avez à faire est de poster une requête Http de votre application angulaire et ce service s'occupe du reste.

  1. créer un compte sur formspree.io
  2. cliquez sur le bouton "+ Nouveau formulaire"
  3. entrez un e-mail que vous souhaitez recevoir les e-mails

Ensuite, vous obtiendrez un point de terminaison unique pour ce nouveau formulaire de création que vous pouvez utiliser pour envoyer (publier) des e-mails à partir de votre application angulaire. Le point de terminaison ressemblera à ceci: https://formspree.io/asdlf7asdf

Voici un exemple de code utilisant des formulaires pilotés par des modèles:

Le formulaire html

 onSubmit(contactForm: NgForm) {
    if (contactForm.valid) {
      const email = contactForm.value;
      const headers = new HttpHeaders({ 'Content-Type': 'application/json' });
      this.http.post('https://formspree.io/asdlf7asdf',
        { name: email.name, replyto: email.email, message: email.messages },
        { 'headers': headers }).subscribe(
          response => {
            console.log(response);
          }
        );
    }
  }

Le code derrière

<form (ngSubmit)="onSubmit(contactForm)" #contactForm="ngForm">
    <input type="text" placeholder="Name" name="name" ngModel required #name="ngModel">
    <input type="text" placeholder="Email" email name="email" ngModel required #email="ngModel">
    <textarea placeholder="Messages" name="messages" ngModel required #messages="ngModel"></textarea>
    <input type="submit" value="Send">
</form>

Vous pouvez faire beaucoup plus avec ce (ou d'autres) services, mais ce serait l'essentiel.


0 commentaires