рдХреЗрд╡рд▓ "@ рд╕реЗрдВрдЧрд░ / рдореЗрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рд╕реИрдВрдбрдмреЙрдХреНрд╕" рдореЛрдб рдХреЛ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рд╣рд╛рдп @CrazyGentleMan ,
рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ mail_settings
рднреАрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдкреЗрд▓реЛрдб рд╣реИред
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд + 1 рдпрд╛ PR рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рд╣рдо рдПрдХ рдкреАрдЖрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЫрд▓рд╛рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж!
рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,
рдПрд▓реНрдорд░
"@ рд╕реЗрдВрдбрдЧреНрд░реЗрдб / рдореЗрд▓" рдореЗрдВ "рд╕реИрдВрдбрдмреЙрдХреНрд╕" рдореЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдХреИрд╕реА рд╣реИ?
рдХреНрдпрд╛ рдЗрд╕ рдмреАрдЪ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИ?
рдзрдиреНрдпрд╡рд╛рдж!
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЛрдб рдореЗрдВ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛ рд░рд╣реЗ рд╢рд░реАрд░ рдХреЗ рднреАрддрд░ рдХрд╛ рдПрдХ рдлрд╝реАрд▓реНрдб mailSettings.sandboxMode.enable
ред рдЗрд╕реЗ рд╕рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЛрдб рдореЗрдВ рдИрдореЗрд▓ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
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 = рдЖрд╡рд╢реНрдпрдХрддрд╛ ('@ sendgrid / mail');
sgMail.setApiKey (process.env.SENDGRID_API_KEY);
рдХрд╛рд╕реНрдЯ рд╕рдВрджреЗрд╢ = {
: ' рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛@example.org ',
рд╕реЗ: ' рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ @example.org ',
рд╡рд┐рд╖рдп: 'рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб',
рдкрд╛рда: 'рд╣реИрд▓реЛ рд╕рд╛рджрд╛ рджреБрдирд┐рдпрд╛!',
HTML: 'рд╣реИрд▓реЛ HTML рджреБрдирд┐рдпрд╛!',
templateId: 'd-f43daeeaef504760851f727007e0b5d0'
рдбрд╛рдпрдирд╛рдорд┐рдХ_рдкреНрд▓реЗрдЯ_рдбреИрдЯрд╛: {
рд╡рд┐рд╖рдп: 'рдкрд░реАрдХреНрд╖рдг рдЯреЗрдореНрдкреНрд▓реЗрдЯ',
рдирд╛рдо: 'рдХреЛрдИ рдПрдХ',
рд╢рд╣рд░: 'рдбреЗрдирд╡рд░',
},
mail_settings: {
рд╕рдХреНрд╖рдо: рд╕рдЪ
}
},
};
sgMail.send (msg);
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ? рдореЗрд░реА рд╡рд░реНрддрдорд╛рди рдкреНрд░реЗрд╖рд┐рдд рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ
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 };
рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЕрдВрддрддрдГ рдЖрдкрдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдиреЗ рдЖрдкрдХреЛ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдПрдкрд┐ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдк рдЯреЗрд╕реНрдЯ рдХреАрдЬ рдХреА рддрд░рд╣ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА
рдкреАрдЖрд░ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд▓рдп рдХрд░ рджрд┐рдпрд╛ред
@malimccalla рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рдореВрд▓ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?
@ рдмрдЪрдХрд╛рдирд╛-рд╕рд╛рдореНрдмрд┐рдиреЛ рдХрд┐рдпрд╛! # 1128
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдп @CrazyGentleMan ,
рдореЗрд░реА рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛
mail_settings
рднреАрддрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣рд╛рдБ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдкреЗрд▓реЛрдб рд╣реИредрдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреИрдХрд▓реЙрдЧ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд + 1 рдпрд╛ PR рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЬрдм рд╣рдо рдПрдХ рдкреАрдЖрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдмрдбрд╝реА рдЫрд▓рд╛рдВрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж!
рд╢реБрднрдХрд╛рдордирд╛рдПрдВ,
рдПрд▓реНрдорд░