mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
Add support for Office365 SMTP
This commit is contained in:
@@ -2,9 +2,10 @@ import nodemailer from "nodemailer";
|
|||||||
import {
|
import {
|
||||||
SMTP_HOST_GMAIL,
|
SMTP_HOST_GMAIL,
|
||||||
SMTP_HOST_MAILGUN,
|
SMTP_HOST_MAILGUN,
|
||||||
|
SMTP_HOST_OFFICE365,
|
||||||
SMTP_HOST_SENDGRID,
|
SMTP_HOST_SENDGRID,
|
||||||
SMTP_HOST_SOCKETLABS,
|
SMTP_HOST_SOCKETLABS,
|
||||||
SMTP_HOST_ZOHOMAIL,
|
SMTP_HOST_ZOHOMAIL
|
||||||
} from "../variables";
|
} from "../variables";
|
||||||
import SMTPConnection from "nodemailer/lib/smtp-connection";
|
import SMTPConnection from "nodemailer/lib/smtp-connection";
|
||||||
import * as Sentry from "@sentry/node";
|
import * as Sentry from "@sentry/node";
|
||||||
@@ -15,6 +16,7 @@ import {
|
|||||||
getSmtpSecure,
|
getSmtpSecure,
|
||||||
getSmtpUsername,
|
getSmtpUsername,
|
||||||
} from "../config";
|
} from "../config";
|
||||||
|
import { getLogger } from "../utils/logger";
|
||||||
|
|
||||||
export const initSmtp = async () => {
|
export const initSmtp = async () => {
|
||||||
const mailOpts: SMTPConnection.Options = {
|
const mailOpts: SMTPConnection.Options = {
|
||||||
@@ -58,6 +60,12 @@ export const initSmtp = async () => {
|
|||||||
ciphers: "TLSv1.2",
|
ciphers: "TLSv1.2",
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case SMTP_HOST_OFFICE365:
|
||||||
|
mailOpts.requireTLS = true;
|
||||||
|
mailOpts.tls = {
|
||||||
|
ciphers: "TLSv1.2"
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if ((await getSmtpHost()).includes("amazonaws.com")) {
|
if ((await getSmtpHost()).includes("amazonaws.com")) {
|
||||||
mailOpts.tls = {
|
mailOpts.tls = {
|
||||||
@@ -73,10 +81,12 @@ export const initSmtp = async () => {
|
|||||||
const transporter = nodemailer.createTransport(mailOpts);
|
const transporter = nodemailer.createTransport(mailOpts);
|
||||||
transporter
|
transporter
|
||||||
.verify()
|
.verify()
|
||||||
.then((err) => {
|
.then(async () => {
|
||||||
Sentry.setUser(null);
|
Sentry.setUser(null);
|
||||||
Sentry.captureMessage("SMTP - Successfully connected");
|
Sentry.captureMessage("SMTP - Successfully connected");
|
||||||
console.log("SMTP - Successfully connected")
|
(await getLogger("backend-main")).info(
|
||||||
|
"SMTP - Successfully connected"
|
||||||
|
);
|
||||||
})
|
})
|
||||||
.catch(async (err) => {
|
.catch(async (err) => {
|
||||||
Sentry.setUser(null);
|
Sentry.setUser(null);
|
||||||
|
|||||||
@@ -3,3 +3,4 @@ export const SMTP_HOST_MAILGUN = "smtp.mailgun.org";
|
|||||||
export const SMTP_HOST_SOCKETLABS = "smtp.socketlabs.com";
|
export const SMTP_HOST_SOCKETLABS = "smtp.socketlabs.com";
|
||||||
export const SMTP_HOST_ZOHOMAIL = "smtp.zoho.com";
|
export const SMTP_HOST_ZOHOMAIL = "smtp.zoho.com";
|
||||||
export const SMTP_HOST_GMAIL = "smtp.gmail.com";
|
export const SMTP_HOST_GMAIL = "smtp.gmail.com";
|
||||||
|
export const SMTP_HOST_OFFICE365 = "smtp.office365.com";
|
||||||
@@ -3,12 +3,12 @@ title: "Configure email service"
|
|||||||
description: "How to configure your email when self-hosting Infisical."
|
description: "How to configure your email when self-hosting Infisical."
|
||||||
---
|
---
|
||||||
|
|
||||||
By default, the core functions of Infisical work without any email service configuration. Without email service, basic sign up/login and secret operations will function without any issue.
|
By default, the core functions of Infisical work without any email service configuration. Without email service, basic sign up/login and secret operations will function without any issue.
|
||||||
However, the following functionality will be disabled.
|
However, the following functionality will be disabled.
|
||||||
|
|
||||||
- Multi-factor authentication
|
- Multi-factor authentication
|
||||||
- Sending invite links via email for projects to teammates
|
- Sending invite links via email for projects to teammates
|
||||||
- Sending alerts such as suspicious login attempts
|
- Sending alerts such as suspicious login attempts
|
||||||
|
|
||||||
## General configuration
|
## General configuration
|
||||||
|
|
||||||
@@ -157,11 +157,30 @@ SMTP_FROM_NAME=Infisical
|
|||||||
As per the [notice](https://support.google.com/accounts/answer/6010255?hl=en) by Google, you should note that using Gmail credentials for SMTP configuration
|
As per the [notice](https://support.google.com/accounts/answer/6010255?hl=en) by Google, you should note that using Gmail credentials for SMTP configuration
|
||||||
will only work for Google Workspace or Google Cloud Identity customers as of May 30, 2022.
|
will only work for Google Workspace or Google Cloud Identity customers as of May 30, 2022.
|
||||||
|
|
||||||
Put differently, the SMTP configuration is only possible with business (not personal) Gmail credentials.
|
Put differently, the SMTP configuration is only possible with business (not personal) Gmail credentials.
|
||||||
|
|
||||||
</Warning>
|
</Warning>
|
||||||
|
|
||||||
</Accordion>
|
</Accordion>
|
||||||
|
|
||||||
|
<Accordion title="Office365">
|
||||||
|
|
||||||
|
1. Create an account and configure [Office365](https://www.office.com/) to send emails.
|
||||||
|
|
||||||
|
2. With your login credentials, you can now set up your SMTP environment variables:
|
||||||
|
|
||||||
|
```
|
||||||
|
SMTP_HOST=smtp.office365.com
|
||||||
|
SMTP_USERNAME=username@yourdomain.com # your username
|
||||||
|
SMTP_PASSWORD=password # your password
|
||||||
|
SMTP_PORT=587
|
||||||
|
SMTP_SECURE=true
|
||||||
|
SMTP_FROM_ADDRESS=username@yourdomain.com
|
||||||
|
SMTP_FROM_NAME=Infisical
|
||||||
|
```
|
||||||
|
|
||||||
|
</Accordion>
|
||||||
|
|
||||||
<Accordion title="Zoho Mail">
|
<Accordion title="Zoho Mail">
|
||||||
|
|
||||||
1. Create an account and configure [Zoho Mail](https://www.zoho.com/mail/) to send emails.
|
1. Create an account and configure [Zoho Mail](https://www.zoho.com/mail/) to send emails.
|
||||||
|
|||||||
Reference in New Issue
Block a user