Automated Email
1.0.0
이 프로젝트는 PHP , MySQL 및 PHPMailer를 사용하여 구축된 간단한 이메일 예약 및 알림 시스템 입니다. 사용자는 미래의 날짜와 시간에 이메일이 전송되도록 예약할 수 있습니다. 시스템은 cron 작업을 사용하여 정기적으로 대기 중인 이메일을 확인하고 자동으로 보냅니다.
프로젝트를 실행하기 전에 다음이 설치되어 있는지 확인하십시오.
git clone https://github.com/yourusername/email-scheduling-app.git
cd email-scheduling-app
composer install
DB_HOST=your_db_host
DB_NAME=your_db_name
DB_USER=your_db_user
DB_PASSWORD=your_db_password
SMTP_HOST=smtp.yourmailprovider.com
SMTP_PORT=587
[email protected]
SMTP_PASS=your_email_password
CREATE DATABASE email_scheduler ;
USE email_scheduler;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY ,
username VARCHAR ( 255 ) NOT NULL ,
email VARCHAR ( 255 ) NOT NULL ,
password VARCHAR ( 255 ) NOT NULL
);
CREATE TABLE scheduled_emails (
email_id INT AUTO_INCREMENT PRIMARY KEY ,
recipient_email VARCHAR ( 255 ) NOT NULL ,
subject VARCHAR ( 255 ) NOT NULL ,
body TEXT NOT NULL ,
scheduled_time DATETIME NOT NULL ,
status ENUM( ' pending ' , ' sent ' , ' failed ' ) DEFAULT ' pending ' ,
attempts INT DEFAULT 0
);
<?php
require_once __DIR__ . ' /../vendor/autoload.php ' ;
use Dotenv Dotenv ;
$ dotenv = Dotenv:: createImmutable ( __DIR__ . ' /../ ' );
$ dotenv -> load ();
class Dbh {
protected function connect () {
$ dsn = ' mysql:host= ' . $ _ENV [ ' DB_HOST ' ] . ' ;dbname= ' . $ _ENV [ ' DB_NAME ' ];
try {
$ pdo = new PDO ( $ dsn , $ _ENV [ ' DB_USER ' ], $ _ENV [ ' DB_PASSWORD ' ]);
$ pdo -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION );
return $ pdo ;
} catch ( PDOException $ e ) {
die ( ' Connection failed: ' . $ e -> getMessage ());
}
}
}
php -S localhost:8000
crontab -e
* * * * * /usr/bin/php /path/to/project/includes/send_email.inc.php
project-root/
│
├── .env
├── .gitignore
├── composer.json
├── composer.lock
├── config.php
├── index.php
├── project.sql
├── README.md
│
├── config/
│ └── db.php
│
├── controllers/
│ ├── login-contr.php
│ ├── schedule_email-contr.php
│ └── signup-contr.php
│
├── includes/
│ ├── login.inc.php
│ ├── logout.inc.php
│ ├── schedule_email.inc.php
│ ├── send_email.inc.php
│ └── signup.inc.php
│
├── models/
│ ├── login-model.php
│ ├── schedule_email-model.php
│ └── signup-model.php
│
├── cron/
│ └── send_email.php
│
└── views/
├── dashboard.php
├── login.php
├── schedule_email.php
└── signup.php
기여를 환영합니다! 언제든지 끌어오기 요청을 제출하거나 문제를 열어보세요.