Send the complete application (body + generated attachments) to a user-entered address via authenticated SMTP submission through the account's own server, so it applies DKIM and uses its reputable IP/PTR — required for deliverability here (domain publishes SPF -all, DMARC p=reject). From/Return-Path stay aligned on the sending domain. Reply e-mails are polled over IMAP, parsed, stored and matched to the right application (via In-Reply-To/References, then sender address); their attachments are saved and downloadable. The detail page gains a correspondence thread with compose, threaded reply, and an AI-drafted reply the user can edit before sending. New: lib/mailer.js (nodemailer + imapflow + mailparser), generateEmailReply in lib/documents.js, emails/email_anhaenge/app_state tables, background poller + manual fetch. Credentials come from MAIL_* env vars (.env, not committed / not in the image). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
38 lines
954 B
JSON
38 lines
954 B
JSON
{
|
|
"name": "bewerbungs-tracker",
|
|
"version": "1.0.0",
|
|
"description": "Job Application Tracker für Jobcenter Grundsicherung Monatsberichte",
|
|
"main": "server.js",
|
|
"scripts": {
|
|
"start": "node server.js",
|
|
"dev": "nodemon server.js",
|
|
"docker:build": "docker build -t git.hackner.dev/thomas/jobbi-bewerbung:latest .",
|
|
"docker:push": "docker push git.hackner.dev/thomas/jobbi-bewerbung:latest",
|
|
"docker:deploy": "npm run docker:build && npm run docker:push"
|
|
},
|
|
"dependencies": {
|
|
"ejs": "^3.1.9",
|
|
"express": "^4.18.2",
|
|
"imapflow": "^1.4.3",
|
|
"jspdf": "^2.5.1",
|
|
"jspdf-autotable": "^3.8.2",
|
|
"mailparser": "^3.9.12",
|
|
"multer": "^2.2.0",
|
|
"nodemailer": "^9.0.3",
|
|
"sqlite3": "^5.1.6"
|
|
},
|
|
"devDependencies": {
|
|
"nodemon": "^3.0.2"
|
|
},
|
|
"keywords": [
|
|
"job",
|
|
"application",
|
|
"tracker",
|
|
"jobcenter",
|
|
"grundsicherung",
|
|
"bewerbung"
|
|
],
|
|
"author": "",
|
|
"license": "MIT"
|
|
}
|