Ich versuche, eine E-Mail-Kontaktseite auf meiner Heroku-Website mit Sendgrid einzurichten. Ich habe den Code mit dem Helfermailer und dem ohne ausprobiert; Beide können jedoch keine E-Mail an meine E-Mail-Adresse senden. Ich habe meinen sendgrid-API-Schlüssel als Variable in meinen heroku-App-Einstellungen hinzugefügt und auch den Benutzernamen und das Passwort importiert. Der E-Mail-Vorgang beginnt, wenn der Benutzer auf eine Schaltfläche klickt. Ich habe eine Aktion auf eine Post-Route innerhalb des Formular-Elements, und ich benutze Body-Parser, um die Eingabewerte vom Benutzer (Nachricht, ihre E-Mail-Adresse und ihre Nachricht) abrufen. Innerhalb meiner Post-Route rufe ich eine Funktion in meiner email.js-Datei auf, die den Code von sendgrid umschließt.Sendgrid-Knoten sendet keine E-Mail. Programm hat keine Fehlermeldungen
// Mein HTML mit Lenker.
<div class = "mainDiv" id = "sectionAbout">
<h1 class="mainDivH1" id = "AboutMe">{{ ContactLi }}</h1>
<form action="/email" method="POST">
<label for="fullName">{{ formName }}</label> <br><br>
<input type="text" name="fullName">
<br>
<br>
<label for="subject">{{ formSubject }}</label> <br><br>
<input type="text" name="subject">
<br>
<br>
<label for="email">{{ formEmail }}</label> <br><br>
<input type="text" name="email">
<br>
<br>
<label for="message">{{ formMessage }}</label> <br><br>
<textarea rows="15" cols="80" type="text" name="message id="textbox"></textarea>
<br>
<br>
<button id="but" type="submit">Submit</button>
</form>
</div>
// Der Code für die POST-Route
var email = require('../mail/email');
router.post('/email', function(req, res){
var name = req.body.fullName;
var emSubject = req.body.subject;
var senderMail = req.body.email;
var message = name + " " + req.body.message;
var myEmail = '[email protected]';
email.send(emSubject, senderMail, message, function(){
res.redirect('/contact');
});
});
//email.js
var helper = require('sendgrid').mail
var sg = require('sendgrid')(process.env.SENDGRID_API_KEY);
var email = {
send: function(emSubject, senderMail, message, callback){
var from_email = new helper.Email(senderMail);
var to_email = new helper.Email('[email protected]');
var subject = emSubject;
var content = new helper.Content("text/plain", message);
var mail = new helper.Mail(from_email, subject, to_email, content);
var request = sg.emptyRequest({
method: 'POST',
path: '/v3/mail/send',
body: mail.toJSON()
});
console.dir("request");
console.dir(JSON.stringify(request, null, 4));
sg.API(request, function(error, response) {
if(error){
console.log(error);
}
console.log(response.statusCode)
console.log(response.body)
console.log(response.headers)
callback(error);
});
}
}
module.exports = email;
Es sind keine Fehler protokolliert? Führt das im sendgrid-Dashboard auf? –