mirror of
				https://github.com/xfarrow/blink
				synced 2025-06-27 09:03:02 +02:00 
			
		
		
		
	update email settings
This commit is contained in:
		| @@ -2,12 +2,18 @@ | ||||
|  | ||||
| # API server settings | ||||
| API_SERVER_PORT = 3000 | ||||
|  | ||||
| JWT_SECRET_KEY = jwt-secret # Change this in production | ||||
|  | ||||
| LIMITER_WINDOW = 3600000 # Milliseconds in limiter window | ||||
| LIMITER_MAXIMUM_PER_WINDOW = 5000 # Requests for each limiter window | ||||
|  | ||||
| SMTP_USERNAME = blink@ik.me # Fill only if NEEDS_EMAIL_VERIFICATION is true | ||||
| SMTP_PASSWORD = your_password # Fill only if NEEDS_EMAIL_VERIFICATION is true | ||||
| SMTP_PORT = 465 # Fill only if NEEDS_EMAIL_VERIFICATION is true | ||||
| SMTP_HOST = mail.infomaniak.com # Fill only if NEEDS_EMAIL_VERIFICATION is true | ||||
| SMTP_SECURE = true | ||||
|  | ||||
| FRONT_END_URL = http://localhost # Primary fron-end's root URL | ||||
|  | ||||
| # Database settings | ||||
| @@ -18,4 +24,4 @@ POSTGRES_PORT = 5432 | ||||
|  | ||||
| # Application settings | ||||
| ALLOW_USER_REGISTRATION = true | ||||
| NEEDS_EMAIL_VERIFICATION = false # Does this server need users to verify their e-mail address? | ||||
| NEEDS_EMAIL_VERIFICATION = true # Does this server need users to verify their e-mail address? | ||||
| @@ -2,18 +2,33 @@ const nodemailer = require('nodemailer'); | ||||
|  | ||||
| // Create a transporter object using the default SMTP transport | ||||
| let transporter = nodemailer.createTransport({ | ||||
|     service: 'Infomaniak', | ||||
|     host: process.env.SMTP_HOST, | ||||
|     port: process.env.SMTP_PORT, | ||||
|     secure: Boolean(process.env.SMTP_SECURE), | ||||
|     auth: { | ||||
|         user: process.env.SMTP_USERNAME, | ||||
|         pass: process.env.SMTP_PASSWORD | ||||
|     } | ||||
| }); | ||||
|  | ||||
| /** | ||||
|  * Given the destination address and the activation code, sends an e-mail | ||||
|  * to activate such account. | ||||
|  * @param {*} destinationAddress  | ||||
|  * @param {*} code  | ||||
|  */ | ||||
| function sendConfirmationLink(destinationAddress, code) { | ||||
|     const confirmationLink = `${process.env.FRONT_END_URL}/activate-account.html?q=${code}` | ||||
|     sendMail(destinationAddress, 'Verify your Blink Account', null, getConfirmationLinkHtmlPage(confirmationLink)); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  *  | ||||
|  * @param {*} destinationAddress Destination Address | ||||
|  * @param {*} subject Subject | ||||
|  * @param {*} text Plain-text body | ||||
|  * @param {*} html Html body | ||||
|  */ | ||||
| function sendMail(destinationAddress, subject, text, html) { | ||||
|  | ||||
|     let mailOptions = { | ||||
| @@ -31,6 +46,14 @@ function sendMail(destinationAddress, subject, text, html) { | ||||
|     }); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Returns an Html page to be rendered in the user's email client which has an | ||||
|  * "Activate Account" button | ||||
|  * @param {*} confirmationLink the link the user shoud follow to activate the | ||||
|  * account  | ||||
|  *  | ||||
|  * @returns A string representing the Html page.  | ||||
|  */ | ||||
| function getConfirmationLinkHtmlPage(confirmationLink) { | ||||
|     return `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Activation Page</title><style>body{font-family:Arial,sans-serif;background-color:#f4f4f4;margin:0;padding:0;display:flex;justify-content:center;align-items:center;height:100vh}.container{text-align:center;padding:20px;border-radius:10px;box-shadow:0 0 20px rgba(0,0,0,.1);background-color:#fff}h1{color:#333}a{display:block;padding:10px 20px;margin-top:20px;background-color:#007bff;color:#fff;text-decoration:none;border-radius:5px;transition:background-color .3s ease}a:hover{background-color:#0056b3}</style></head><body><div class="container"><h1>Activate your Blink Account</h1><p>Please click the button below to activate your account</p><a href="${confirmationLink}">Activate Now</a></div></body></html>`; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user