ΠΠ°ΠΊ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Β«ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡΒ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Β«@ sendgrid / mailΒ»
ΠΡΠΈΠ²Π΅Ρ @CrazyGentleMan!
ΠΠΎΠΈ ΠΈΠ·Π²ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΅ΡΡΡ , ΡΡΠΎ ΠΌΡ ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π΄Π΅ΡΡ . ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
mail_settings
. ΠΠΎΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ.
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΡΠΎ Π² Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π·Π°ΠΊΠ°Π·ΠΎΠ².
Π§ΡΠΎΠ±Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π² Π½Π°ΡΠ΅ΠΌ Π±ΡΠΊΠ»ΠΎΠ³Π΅, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ +1 ΠΈΠ»ΠΈ PR. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ PR, ΡΡΠΎ Π΄Π°Π΅Ρ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΠ°ΡΠΎΠΊ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π‘ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ,
ΠΠ»ΠΌΠ΅Ρ
ΠΠ°ΠΊ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΠΆΠΈΠΌ Β«ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡΒ» Π² Β«@ sendgrid / mailΒ»?
ΠΡΡΡ Π»ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ?
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
ΠΠ°ΠΊ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡ Π²ΡΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ, Π½ΠΎ ΡΡΠΎ ΡΠ²Π½ΠΎ Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠ΅Π½Π°ΡΠΈΡΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π½ΠΎ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π² ΡΠ΅Π»Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ - mailSettings.sandboxMode.enable
. ΠΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ true ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
import * as SendGrid from '@sendgrid/mail';
import { MailData } from '@sendgrid/helpers/classes/mail';
import { Email } from '../models';
import config from '../config';
export function send(email: Email): Promise<any> {
SendGrid.setApiKey(config.services.email.apiKey);
const mailSettings = config.services.email.options;
const data: MailData = {
...email,
...mailSettings
};
// This will send the email in sandbox mode
data.mailSettings.sandboxMode.enable = true;
return SendGrid.send(data);
}
ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π»ΠΈ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΠΎΠ΅ ΠΏΠΈΡΡΠΌΠΎ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° Π²ΠΊΠ»ΡΡΠ΅Π½ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ?
@ ΠΠΈΠΊΡΠΎΡ ΠΠΎΠ½ΡΠ΅,
Π― ΡΠ°ΠΊ Π½Π΅ Π΄ΡΠΌΠ°Ρ.
ΠΠ»Ρ V3 Π²ΠΎΡ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ
const sgMail = require ('@ sendgrid / mail');
sgMail.setApiKey (process.env.SENDGRID_API_KEY);
const msg = {
Π½Π°: " [email protected] ",
ΠΎΡ: ' [email protected] ',
ΡΠ΅ΠΌΠ°: "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ",
ΡΠ΅ΠΊΡΡ: 'ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!',
html: 'ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ HTML!',
templateId: 'd-f43daeeaef504760851f727007e0b5d0',
dynamic_template_data: {
ΡΠ΅ΠΌΠ°: 'Π¨Π°Π±Π»ΠΎΠ½Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ',
name: 'ΠΡΠΎ-ΡΠΎ',
Π³ΠΎΡΠΎΠ΄: 'ΠΠ΅Π½Π²Π΅Ρ',
},
mail_settings: {
enable: true
}
},
};
sgMail.send (ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅);
ΠΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ? ΠΠΎΠΉ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°ΠΉΠ» sendgrid Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ
import sgMail from '@sendgrid/mail';
const sendGridApiKey = process.env.SENDGRID_API_KEY;
if (!sendGridApiKey) {
throw new Error('The sendgrid api key has not been set in the environment variables');
}
sgMail.setApiKey(sendGridApiKey);
// I need to be able to do something like this
sgMail.enableSandbox(process.env.NODE_ENV !== 'production')
export { sgMail };
ΠΡΠ»ΠΎ Π±Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ, Π΅ΡΠ»ΠΈ Π±Ρ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΠΈΡΠΎΠ³Π΅ sendgrid ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» Π²Π°ΠΌ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ»ΡΡΠΈ api ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΠΊΠ»ΡΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ»ΠΎΡΡ.
PR ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½, ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ.
@malimccalla Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ ΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ, Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ Π²Ρ ΠΎΡΠΊΡΡΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΡΡΠΎ?
@ childish-sambino ΠΠΎΡΠΎΠ²ΠΎ! # 1128
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΡΠΈΠ²Π΅Ρ @CrazyGentleMan!
ΠΠΎΠΈ ΠΈΠ·Π²ΠΈΠ½Π΅Π½ΠΈΡ, ΠΊΠ°ΠΆΠ΅ΡΡΡ , ΡΡΠΎ ΠΌΡ ΠΎΠΏΡΡΡΠΈΠ»ΠΈ ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π·Π΄Π΅ΡΡ . ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ
mail_settings
. ΠΠΎΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π½Π°Π³ΡΡΠ·ΠΊΠ° Π΄Π»Ρ ΡΠΏΡΠ°Π²ΠΊΠΈ.Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΡΡΠΎ Π² Π½Π°Ρ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π·Π°ΠΊΠ°Π·ΠΎΠ².
Π§ΡΠΎΠ±Ρ ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΏΠΎΠ»ΡΡΠΈΠ» ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π² Π½Π°ΡΠ΅ΠΌ Π±ΡΠΊΠ»ΠΎΠ³Π΅, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ +1 ΠΈΠ»ΠΈ PR. ΠΠΎΠ³Π΄Π° ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ PR, ΡΡΠΎ Π΄Π°Π΅Ρ ΡΠ°ΠΌΡΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΊΠ°ΡΠΎΠΊ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π‘ Π½Π°ΠΈΠ»ΡΡΡΠΈΠΌΠΈ ΠΏΠΎΠΆΠ΅Π»Π°Π½ΠΈΡΠΌΠΈ,
ΠΠ»ΠΌΠ΅Ρ