Senden von E-Mails aus Winkel-2
Wie Sende ich E-Mails von einem Winkel 2 App?
Ich bin hosting eine Eckige 2-app auf FB. Ich möchte senden Sie ein Kontaktformular als E-Mail. Idealerweise meine Lösung verwenden würde, Nodejs, aber ich bin bereit, alles, was, die bekommen den job richtig gemacht. Unten ist eine Aufschlüsselung der meine app.
Client-Seite Fortschritt
Hier ist mein Fragebogen:
HTML:
<!-- contact-form.component.html -->
<form [formGroup]="formService.contactForm" (ngSubmit)="formService.onSubmitForm()">
<input type="text" formControlName="userFirstName">
<label>First Name</label>
<input type="text" formControlName="userLastName">
<label>Last Name</label>
<button type="submit">SUBMIT</button>
</form>
Hier ist mein Kontakt-Formular-Komponente:
JS:
//contact-form.component.ts
import { Component } from '@angular/core';
import { ContactFormService } from './contact-form.service';
@Component({
selector: 'contact-form',
templateUrl: './contact-form.component.html',
styleUrls: ['./contact-content.component.css'],
providers: [ContactFormService]
})
export class ContactFormComponent {
constructor(private formService: ContactFormService) {
formService.buildForm();
}
}
Hier ist mein Kontakt-Formular-service:
JS:
//contact-form.service.ts
import { Injectable } from '@angular/core';
import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';
@Injectable()
export class ContactFormService {
constructor(public formBuilder: FormBuilder) { }
contactForm: FormGroup;
formSubmitted: boolean = false;
buildForm() {
this.contactForm = this.formBuilder.group({
userFirstName: this.formBuilder.control(null, Validators.required),
userLastName: this.formBuilder.control(null, Validators.required)
});
}
onSubmitForm() {
console.log(this.contactForm.value);
this.formSubmitted = true;
this.contactForm.reset();
}
}
Wenn ich auf den submit-button werden die Formulardaten erfolgreich Anzeige in der Konsole.
Server-Seite Nodejs Fortschritt
Ich erfolgreich senden können E-Mails aus der Eingabeaufforderung mit dem Befehl SendGrid und Nodejs:
Beispiel: sendmail.js
JS:
var Sendgrid = require('sendgrid')(
process.env.SENDGRID_API_KEY || '<my-api-key-placed-here>'
);
var request = Sendgrid.emptyRequest({
method: 'POST',
path: '/v3/mail/send',
body: {
personalizations: [{
to: [{ email: '[email protected]' }],
subject: 'Sendgrid test email from Node.js'
}],
from: { email: '[email protected]' },
content: [{
type: 'text/plain',
value: 'Hello Joe! Can you hear me Joe?.'
}]
}
});
Sendgrid.API(request, function (error, response) {
if (error) {
console.log('Mail not sent; see error message below.');
} else {
console.log('Mail sent successfully!');
}
console.log(response);
});
Dann eine E-Mail erfolgreich gesendet, wenn ich das tippe in der Eingabeaufforderung ein:
node sendmail
Aber ich kann nicht herausfinden, wie link meine eingegebene Formulardaten zu sendmail.js und auch ich kann nicht herausfinden, wie zu aktivieren Sie den code in sendmail.js durch anklicken der Absenden-Schaltfläche.
Jegliche Hilfe würde sehr geschätzt werden. Vielen Dank für Ihre Zeit!
- Ich habe dies vor, im Winkel 2, ich werde sehen, wie ich ging, es zu tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie, schreiben Sie Ihre sendmail.js als rest-service, z.B.:
bitte beachten Sie, dass ich Daten in das Formular innerhalb der E-Mail-Körper
dann in deinem submit-Funktion in eckige, führen Sie einfach
Bearbeiten:
Ich sah nur, dass Sie dienen auf FB, ich werde schauen, wie sich das ändert die Dinge.
Wie würde ich das ausführen des server-side-code im FB?
Winkel 2 ist client-Seite, wenn Sie wollen, machen Sie einen API-Aufruf w/Ihr Geheimnis, das Sie sollten wahrscheinlich tun es die server-Seite, aka node.js oder was auch immer Ihr server ist.
Weil Sie
sendmail.js
als ein Skript, betrachten dienen Ihre Eckige 2-Anwendung mit node.js und mit einer API-Endpunkt mit Ausdrücken, wie/api/sendMail
dass Sie eine XHR/AJAX-request aus Ihrem Winkel 2 Anwendung.