Configuraion
This commit is contained in:
@@ -71,11 +71,15 @@ services:
|
|||||||
STRIPE_PRICE_ID_PRO_YEARLY: ${STRIPE_PRICE_ID_PRO_YEARLY:-}
|
STRIPE_PRICE_ID_PRO_YEARLY: ${STRIPE_PRICE_ID_PRO_YEARLY:-}
|
||||||
STRIPE_PRICE_ID_BUSINESS_MONTHLY: ${STRIPE_PRICE_ID_BUSINESS_MONTHLY:-}
|
STRIPE_PRICE_ID_BUSINESS_MONTHLY: ${STRIPE_PRICE_ID_BUSINESS_MONTHLY:-}
|
||||||
STRIPE_PRICE_ID_BUSINESS_YEARLY: ${STRIPE_PRICE_ID_BUSINESS_YEARLY:-}
|
STRIPE_PRICE_ID_BUSINESS_YEARLY: ${STRIPE_PRICE_ID_BUSINESS_YEARLY:-}
|
||||||
# Email & Analytics
|
# Email & Analytics
|
||||||
RESEND_API_KEY: ${RESEND_API_KEY:-}
|
RESEND_API_KEY: ${RESEND_API_KEY:-}
|
||||||
NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-}
|
SMTP_HOST: ${SMTP_HOST:-smtp.qrmaster.net}
|
||||||
NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com}
|
SMTP_PORT: ${SMTP_PORT:-465}
|
||||||
# Cloudflare R2 Storage
|
SMTP_USER: ${SMTP_USER:-timo@qrmaster.net}
|
||||||
|
SMTP_PASS: ${SMTP_PASS:-}
|
||||||
|
NEXT_PUBLIC_POSTHOG_KEY: ${NEXT_PUBLIC_POSTHOG_KEY:-}
|
||||||
|
NEXT_PUBLIC_POSTHOG_HOST: ${NEXT_PUBLIC_POSTHOG_HOST:-https://us.i.posthog.com}
|
||||||
|
# Cloudflare R2 Storage
|
||||||
R2_ACCOUNT_ID: ${R2_ACCOUNT_ID:-}
|
R2_ACCOUNT_ID: ${R2_ACCOUNT_ID:-}
|
||||||
R2_ACCESS_KEY_ID: ${R2_ACCESS_KEY_ID:-}
|
R2_ACCESS_KEY_ID: ${R2_ACCESS_KEY_ID:-}
|
||||||
R2_SECRET_ACCESS_KEY: ${R2_SECRET_ACCESS_KEY:-}
|
R2_SECRET_ACCESS_KEY: ${R2_SECRET_ACCESS_KEY:-}
|
||||||
|
|||||||
@@ -538,17 +538,26 @@ export async function sendAIFeatureLaunchEmail(email: string) {
|
|||||||
// SMTP Transport (nodemailer) — used for retention / welcome emails
|
// SMTP Transport (nodemailer) — used for retention / welcome emails
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
function createSmtpTransport() {
|
function createSmtpTransport() {
|
||||||
return nodemailer.createTransport({
|
const host = process.env.SMTP_HOST || 'smtp.qrmaster.net';
|
||||||
host: process.env.SMTP_HOST || 'smtp.qrmaster.net',
|
const port = parseInt(process.env.SMTP_PORT || '465', 10);
|
||||||
port: parseInt(process.env.SMTP_PORT || '465', 10),
|
const user = process.env.SMTP_USER || 'timo@qrmaster.net';
|
||||||
secure: true, // port 465 = SSL
|
const pass = process.env.SMTP_PASS?.trim();
|
||||||
auth: {
|
|
||||||
user: process.env.SMTP_USER || 'timo@qrmaster.net',
|
if (!pass) {
|
||||||
pass: process.env.SMTP_PASS,
|
throw new Error('SMTP_PASS is missing. Configure SMTP credentials before sending welcome or retention emails.');
|
||||||
},
|
}
|
||||||
});
|
|
||||||
}
|
return nodemailer.createTransport({
|
||||||
|
host,
|
||||||
|
port,
|
||||||
|
secure: port === 465,
|
||||||
|
auth: {
|
||||||
|
user,
|
||||||
|
pass,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const appUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://www.qrmaster.net';
|
const appUrl = process.env.NEXT_PUBLIC_APP_URL || 'https://www.qrmaster.net';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user