下面是一个使用Angular和Express.js的示例应用程序,通过前端表单发送电子邮件:
// app.component.ts
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
template: `
Send Email
`,
})
export class AppComponent {
email: string;
message: string;
constructor(private http: HttpClient) {}
sendEmail() {
const data = {
email: this.email,
message: this.message
};
this.http.post('/send-email', data).subscribe(() => {
console.log('Email sent');
});
}
}
// server.js
const express = require('express');
const nodemailer = require('nodemailer');
const app = express();
app.use(express.json());
app.post('/send-email', (req, res) => {
const { email, message } = req.body;
const transporter = nodemailer.createTransport({
service: 'gmail',
auth: {
user: 'your-email@gmail.com',
pass: 'your-password'
}
});
const mailOptions = {
from: 'your-email@gmail.com',
to: email,
subject: 'Test Email',
text: message
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.error(error);
} else {
console.log('Email sent: ' + info.response);
res.sendStatus(200);
}
});
});
app.listen(3000, () => {
console.log('Server started on port 3000');
});
请确保已安装以下依赖项:
@angular/core
, @angular/common
, @angular/forms
, @angular/common/http
express
, nodemailer
要运行应用程序,您需要在终端中分别运行Angular应用程序和Express.js服务器。