EmailSettingsManager
Email Settings Manager
Manages email provider configuration including SMTP, SendGrid, Mailgun, and AWS SES. Provides direct access to the email settings API with proper handling of sensitive credentials.
Example
Section titled “Example”const email = client.admin.settings.email
// Get current email settingsconst settings = await email.get()console.log(settings.provider) // 'smtp'console.log(settings.smtp_password_set) // true (password is configured)
// Update email settingsawait email.update({ provider: 'sendgrid', sendgrid_api_key: 'SG.xxx', from_address: 'noreply@yourapp.com'})
// Test email configurationconst result = await email.test('test@example.com')console.log(result.success) // true
// Convenience methodsawait email.enable()await email.disable()await email.setProvider('smtp')Constructors
Section titled “Constructors”new EmailSettingsManager()
Section titled “new EmailSettingsManager()”new EmailSettingsManager(
fetch):EmailSettingsManager
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
fetch | FluxbaseFetch |
Returns
Section titled “Returns”Methods
Section titled “Methods”disable()
Section titled “disable()”disable():
Promise<EmailProviderSettings>
Disable email functionality
Convenience method to disable the email system.
Returns
Section titled “Returns”Promise<EmailProviderSettings>
Promise resolving to EmailProviderSettings
Example
Section titled “Example”await client.admin.settings.email.disable()enable()
Section titled “enable()”enable():
Promise<EmailProviderSettings>
Enable email functionality
Convenience method to enable the email system.
Returns
Section titled “Returns”Promise<EmailProviderSettings>
Promise resolving to EmailProviderSettings
Example
Section titled “Example”await client.admin.settings.email.enable()get():
Promise<EmailProviderSettings>
Get current email provider settings
Returns the current email configuration. Sensitive values (passwords, client keys) are not returned - instead, boolean flags indicate whether they are set.
Returns
Section titled “Returns”Promise<EmailProviderSettings>
Promise resolving to EmailProviderSettings
Example
Section titled “Example”const settings = await client.admin.settings.email.get()
console.log('Provider:', settings.provider)console.log('From:', settings.from_address)console.log('SMTP password configured:', settings.smtp_password_set)
// Check for environment variable overridesif (settings._overrides.provider?.is_overridden) { console.log('Provider is set by env var:', settings._overrides.provider.env_var)}setProvider()
Section titled “setProvider()”setProvider(
provider):Promise<EmailProviderSettings>
Set the email provider
Convenience method to change the email provider. Note: You’ll also need to configure the provider-specific settings.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
provider | "smtp" | "sendgrid" | "mailgun" | "ses" | The email provider to use |
Returns
Section titled “Returns”Promise<EmailProviderSettings>
Promise resolving to EmailProviderSettings
Example
Section titled “Example”await client.admin.settings.email.setProvider('sendgrid')test()
Section titled “test()”test(
recipientEmail):Promise<TestEmailSettingsResponse>
Test email configuration by sending a test email
Sends a test email to verify that the current email configuration is working.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
recipientEmail | string | Email address to send the test email to |
Returns
Section titled “Returns”Promise<TestEmailSettingsResponse>
Promise resolving to TestEmailSettingsResponse
Throws
Section titled “Throws”Error if email sending fails
Example
Section titled “Example”try { const result = await client.admin.settings.email.test('admin@yourapp.com') console.log('Test email sent:', result.message)} catch (error) { console.error('Email configuration error:', error.message)}update()
Section titled “update()”update(
request):Promise<EmailProviderSettings>
Update email provider settings
Supports partial updates - only provide the fields you want to change. Secret fields (passwords, client keys) are only updated if provided.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
request | UpdateEmailProviderSettingsRequest | Settings to update (partial update supported) |
Returns
Section titled “Returns”Promise<EmailProviderSettings>
Promise resolving to EmailProviderSettings - Updated settings
Throws
Section titled “Throws”Error if a setting is overridden by an environment variable
Example
Section titled “Example”// Configure SMTPawait client.admin.settings.email.update({ enabled: true, provider: 'smtp', from_address: 'noreply@yourapp.com', from_name: 'Your App', smtp_host: 'smtp.gmail.com', smtp_port: 587, smtp_username: 'your-email@gmail.com', smtp_password: 'your-app-password', smtp_tls: true})
// Configure SendGridawait client.admin.settings.email.update({ provider: 'sendgrid', sendgrid_api_key: 'SG.xxx'})
// Update just the from address (password unchanged)await client.admin.settings.email.update({ from_address: 'new-address@yourapp.com'})