log errors
This commit is contained in:
parent
291f92c37e
commit
cdabec2a92
2 changed files with 43 additions and 19 deletions
|
|
@ -3,10 +3,13 @@ import { SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD, SMTP_FROM, MAILSHIP_NAM
|
|||
import type { Subscription } from './alert.js'
|
||||
import { render } from './templates.js'
|
||||
|
||||
const secure = Number(SMTP_PORT) === 465
|
||||
|
||||
const transporter = nodemailer.createTransport({
|
||||
host: SMTP_HOST,
|
||||
port: Number(SMTP_PORT),
|
||||
secure: true,
|
||||
secure,
|
||||
requireTLS: !secure,
|
||||
auth: {
|
||||
user: SMTP_USER,
|
||||
pass: SMTP_PASSWORD,
|
||||
|
|
@ -16,7 +19,8 @@ const transporter = nodemailer.createTransport({
|
|||
export const sendConfirm = (sub: Subscription) => {
|
||||
const href = `${BASE_URL}/confirm?token=${sub.key}`
|
||||
|
||||
return transporter.sendMail({
|
||||
return transporter
|
||||
.sendMail({
|
||||
from: SMTP_FROM,
|
||||
to: sub.email,
|
||||
subject: 'Confirm your email digest',
|
||||
|
|
@ -27,10 +31,19 @@ export const sendConfirm = (sub: Subscription) => {
|
|||
`,
|
||||
text: `Please confirm that you would like to receive ${sub.frequency} digests by visiting: ${href}`,
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('mailer: confirmation email failed', {
|
||||
to: sub.email,
|
||||
smtp: { host: SMTP_HOST, port: SMTP_PORT },
|
||||
error: error?.message || error,
|
||||
})
|
||||
throw error
|
||||
})
|
||||
}
|
||||
|
||||
export const sendDigest = async (sub: Subscription, variables: Record<string, any>) => {
|
||||
return transporter.sendMail({
|
||||
return transporter
|
||||
.sendMail({
|
||||
from: SMTP_FROM,
|
||||
to: sub.email,
|
||||
subject: 'New activity',
|
||||
|
|
@ -40,4 +53,12 @@ export const sendDigest = async (sub: Subscription, variables: Record<string, an
|
|||
unsubscribeUrl: `${BASE_URL}/unsubscribe?token=${sub.key}`,
|
||||
}),
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('mailer: digest email failed', {
|
||||
to: sub.email,
|
||||
smtp: { host: SMTP_HOST, port: SMTP_PORT },
|
||||
error: error?.message || error,
|
||||
})
|
||||
throw error
|
||||
})
|
||||
}
|
||||
|
|
@ -113,7 +113,10 @@ addRoute('post', '/subscription/email', async (req: Request, res: Response) => {
|
|||
const result = await registerSubscription({ pubkey, email, frequency })
|
||||
res.json(result)
|
||||
} catch (error: any) {
|
||||
// If the error is just Postmark failing, the subscription was still created
|
||||
// The subscription was still created, but sending the confirmation email
|
||||
// may have failed. Always log it so SMTP issues are visible.
|
||||
console.error('Failed to send confirmation email for', pubkey, error?.message || error)
|
||||
|
||||
// Look up the actual subscription key from the DB
|
||||
const sub = await getSubscriptionByPubkey(pubkey)
|
||||
if (sub) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue