88 أسطر
2.0 KiB
Markdown
88 أسطر
2.0 KiB
Markdown
# Backend Setup Guide
|
|
|
|
This guide explains how to set up the backend for the contact form functionality.
|
|
|
|
## Overview
|
|
|
|
The contact form uses a Node.js/Express backend with Nodemailer to send emails via Gmail SMTP. During development, Vite proxies API requests to the Node.js server.
|
|
|
|
## Setup Instructions
|
|
|
|
### 1. Install Dependencies
|
|
|
|
Make sure all dependencies are installed:
|
|
|
|
```bash
|
|
npm install
|
|
# or
|
|
bun install
|
|
```
|
|
|
|
### 2. Configure Gmail SMTP
|
|
|
|
To send emails via Gmail:
|
|
|
|
1. Enable 2-factor authentication on your Gmail account
|
|
2. Generate an App Password:
|
|
- Go to your Google Account settings
|
|
- Navigate to Security > 2-Step Verification > App passwords
|
|
- Generate a new app password for "Mail"
|
|
3. Update the credentials in `.env` file:
|
|
```
|
|
EMAIL_USER=scandrone308@gmail.com
|
|
EMAIL_PASS=your-app-password
|
|
```
|
|
|
|
### 3. Run the Application
|
|
|
|
You'll need to run both the frontend development server and the backend server:
|
|
|
|
Terminal 1 (Frontend):
|
|
```bash
|
|
npm run dev
|
|
# or
|
|
bun run dev
|
|
```
|
|
|
|
Terminal 2 (Backend):
|
|
```bash
|
|
npm start
|
|
# or
|
|
bun run start
|
|
```
|
|
|
|
### 4. Production Deployment
|
|
|
|
For production deployment:
|
|
|
|
1. Build the frontend:
|
|
```bash
|
|
npm run build
|
|
# or
|
|
bun run build
|
|
```
|
|
|
|
2. Run the server which will serve both the API and the built frontend:
|
|
```bash
|
|
npm start
|
|
# or
|
|
bun run start
|
|
```
|
|
|
|
## How It Works
|
|
|
|
1. The React frontend sends form data to `/api/contact` via fetch
|
|
2. Vite proxies `/api` requests to the Node.js server (during development)
|
|
3. The Node.js server receives the data and sends an email using Nodemailer
|
|
4. The email is sent to bayan10kh@gmail.com via Gmail SMTP
|
|
|
|
## Troubleshooting
|
|
|
|
If emails aren't being sent:
|
|
|
|
1. Check that your Gmail credentials are correct in the `.env` file
|
|
2. Verify that you're using an App Password, not your regular Gmail password
|
|
3. Ensure 2-factor authentication is enabled on your Gmail account
|
|
4. Check the server console for error messages
|
|
5. Verify that your hosting provider allows SMTP connections
|
|
6. Make sure the EMAIL_USER and EMAIL_PASS variables are properly set in the `.env` file |