gpt4 book ai didi

node.js - 使用 Angular 和 NodeMailer 发送电子邮件

转载 作者:太空狗 更新时间:2023-10-29 17:53:41 25 4
gpt4 key购买 nike

最近怎么样?

我正在尝试弄清楚如何使用 Angular 5 和 Node.js - 使用 nodemailer- 发送电子邮件。

我想要存档的是当一些用户在页面中进行预约并且系统收到提供的电子邮件并在他们单击“安排我的......”按钮时向用户发送一些信息

正如您将在 appointment.component.ts 中看到的那样,当用户单击按钮时,变量会更改为“true”以向用户显示一些隐藏的 div 并显示一个 snackbar 但什么都没发生。控制台日志中没有错误,也没有任何错误。有什么想法吗?

下面是我的代码。提前致谢。

server.js

const express    = require('express');
const path = require('path');
const http = require('http');
const bodyParser = require('body-parser');
const nodeMailer = require('nodemailer');

const api = require('./server/routes/api');

const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static(path.join(__dirname, 'dist')));

app.use('/api', api);
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/index.html'));
});
app.post('/sendemail', (req, res) => {
let transporter = nodeMailer.createTransport({
host: 'smtp.gmail.com',
port: 465,
secure: true,
auth: {
user: 'xxxxx@gmail.com',
pass: 'xxxxxxxxxxxxx'
}
});
let mailOptions = {
from: '"Nourish Team" <no-reply@nourish.io>',
to: "anyemailhere@gmail.com",
subject: 'Test',
text: 'Hello!',
html: '<b>Testing email function</b>'
};

transporter.sendMail(mailOptions, (error, info) => {
if(error) {
return console.log(error);
}
console.log('Message sent');
})
});

const port = process.env.PORT || '3000';
app.set('port', port);

const server = http.createServer(app);
server.listen(port, () => console.log(`API running on localhost:${port}`));

appointment.component.html

<form novalidate action="/send-email" method="POST" (ngSubmit)="sendEmail()">
<mat-form-field class="middle-width" ngClass.xs="full-width">
<input matInput placeholder="Nombre Completo" [formControl]="fullName" required>
<mat-error *ngIf="fullName.hasError('pattern') && !fullName.hasError('required')">
El campo solo acepta letras.
</mat-error>
<mat-error *ngIf="fullName.hasError('required')">
¡Este cambo es <strong>requerido</strong>!
</mat-error>
</mat-form-field>
<mat-form-field class="middle-width" ngClass.xs="full-width">
<input matInput placeholder="Correo Electrónico" type="email" [formControl]="cEmail" required>
<mat-error *ngIf="cEmail.hasError('email') && !cEmail.hasError('required')">
Debes introducir un correo electrónico válido
</mat-error>
<mat-error *ngIf="cEmail.hasError('required')">
¡Este cambo es <strong>requerido</strong>!
</mat-error>
</mat-form-field>
<mat-form-field class="middle-width" ngClass.xs="full-width">
<input matInput placeholder="Teléfono" type="tel" [formControl]="phone" maxlength="14" mask="(000) 000 0000" required>
<mat-hint align="end">{{phone.value.length}} / 10</mat-hint>
<mat-error *ngIf="phone.hasError('pattern') && !phone.hasError('required')">
El campo sólo acepta números
</mat-error>
<mat-error *ngIf="phone.hasError('required')">
¡Este cambo es <strong>requerido</strong>!
</mat-error>
</mat-form-field>
<mat-form-field class="middle-width" ngClass.xs="full-width">
<input matInput [matDatepicker]="picker" placeholder="Elegir fecha">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker touchUi="true" #picker></mat-datepicker>
</mat-form-field>
<br>
<button mat-raised-button type="submit">Schedule My Appointment</button>
</form>

appointment.component.ts

sendEmail() {
this.sucess = true;
this.snackBar.open('Información enviada exitosamente.', 'x', {
duration: 5000,
});
this.name = this.fullName.value;
this.http.post('/sendemail', this.cEmail).subscribe(data => {
console.log(data);
});
}

I assume this code is to concatenated the node.js code into Angular5 app: this.http.post('/sendemail', this.cEmail).subscribe(data => {console.log(data);});

最佳答案

感谢您的代码!我的工作。也许您想更改您的 app.post 方法。

server.js

app.post("/sendemail", (req, res) => {
var transporter = nodemailer.createTransport({
host: "smtp-mail.outlook.com",
secureConnection: false,
port: 587,
tls: {
chipers: "SSLv3"
},
auth: {
user: "xxx@hotmail.com",
pass: "xxx"
}
});

var mailOptions = {
from: "xxx@hotmail.com",
to: "xxx@gmail.com",
subject: "Nodejs Mail",
text: "this is the email's body text..."
};

transporter.sendMail(mailOptions, function(error, info) {
if (error) console.log(error);
else console.log("Message sent successfully: " + info.response);
});

});

关于node.js - 使用 Angular 和 NodeMailer 发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48605404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com