mirror of
https://github.com/projectsend/projectsend.git
synced 2026-09-11 22:38:54 +00:00
4eb8cf915a
Same delegated shape as the Microsoft 365 provider, through the same broker interface: the admin registers an OAuth client in Google Cloud Console, connects the Google account the installation should send as, and outgoing email goes through the Gmail API's messages.send as that account. The shared authorization-code machinery (exchange, refresh, token storage, id_token account detection, RFC 6749 failure telling a dead grant from a transient one) moves into an abstract OAuthCodeFlowBroker; the two vendor brokers keep only their endpoints, scopes and consent URL parameters. Google's quirks live where they belong: offline access with a forced consent screen (the only way Google issues a refresh token), and a refresh response that never re-sends one — the store keeps what it has. The settings screen needed no changes: the dropdown, the credential form and the connect flow all derive from the provider enum.
149 lines
4.6 KiB
PHP
149 lines
4.6 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Default Mailer
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This option controls the default mailer that is used to send all email
|
|
| messages unless another mailer is explicitly specified when sending
|
|
| the message. All additional mailers can be configured within the
|
|
| "mailers" array. Examples of each type of mailer are provided.
|
|
|
|
|
*/
|
|
|
|
'default' => env('MAIL_MAILER', 'log'),
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Mailer Configurations
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Here you may configure all of the mailers used by your application plus
|
|
| their respective settings. Several examples have been configured for
|
|
| you and you are free to add your own as your application requires.
|
|
|
|
|
| Laravel supports a variety of mail "transport" drivers that can be used
|
|
| when delivering an email. You may specify which one you're using for
|
|
| your mailers below. You may also add additional mailers if needed.
|
|
|
|
|
| Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2",
|
|
| "postmark", "resend", "log", "array",
|
|
| "failover", "roundrobin"
|
|
|
|
|
*/
|
|
|
|
'mailers' => [
|
|
|
|
'smtp' => [
|
|
'transport' => 'smtp',
|
|
'url' => env('MAIL_URL'),
|
|
'host' => env('MAIL_HOST', '127.0.0.1'),
|
|
'port' => env('MAIL_PORT', 2525),
|
|
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
|
|
'username' => env('MAIL_USERNAME'),
|
|
'password' => env('MAIL_PASSWORD'),
|
|
'timeout' => null,
|
|
'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)),
|
|
],
|
|
|
|
'ses' => [
|
|
'transport' => 'ses',
|
|
],
|
|
|
|
'postmark' => [
|
|
'transport' => 'postmark',
|
|
// 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'),
|
|
// 'client' => [
|
|
// 'timeout' => 5,
|
|
// ],
|
|
],
|
|
|
|
'resend' => [
|
|
'transport' => 'resend',
|
|
],
|
|
|
|
'sendmail' => [
|
|
'transport' => 'sendmail',
|
|
'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'),
|
|
],
|
|
|
|
// Custom transports (registered in PlatformServiceProvider); their
|
|
// credentials live in the mail_oauth_connections rows, not here —
|
|
// MailConfigApplier selects one as the default when the admin has
|
|
// connected the matching mailbox.
|
|
'microsoft-graph' => [
|
|
'transport' => 'microsoft-graph',
|
|
],
|
|
|
|
'gmail-api' => [
|
|
'transport' => 'gmail-api',
|
|
],
|
|
|
|
'log' => [
|
|
'transport' => 'log',
|
|
'channel' => env('MAIL_LOG_CHANNEL'),
|
|
],
|
|
|
|
'array' => [
|
|
'transport' => 'array',
|
|
],
|
|
|
|
'failover' => [
|
|
'transport' => 'failover',
|
|
'mailers' => [
|
|
'smtp',
|
|
'log',
|
|
],
|
|
],
|
|
|
|
'roundrobin' => [
|
|
'transport' => 'roundrobin',
|
|
'mailers' => [
|
|
'ses',
|
|
'postmark',
|
|
],
|
|
],
|
|
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Global "From" Address
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| You may wish for all emails sent by your application to be sent from
|
|
| the same address. Here you may specify a name and address that is
|
|
| used globally for all emails that are sent by your application.
|
|
|
|
|
*/
|
|
|
|
'from' => [
|
|
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
|
|
'name' => env('MAIL_FROM_NAME', 'Example'),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Markdown Mail Rendering
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| The "theme" here is only the initial default (used for mail sent
|
|
| outside a notification, or before Setting::EmailTheme is read) —
|
|
| ThemedMailChannel picks the installation's actual theme at send time.
|
|
| The "paths" entry is what makes resources/views/vendor/mail override
|
|
| the framework's own header/footer/theme-css views.
|
|
|
|
|
*/
|
|
|
|
'markdown' => [
|
|
'theme' => 'default',
|
|
'paths' => [
|
|
resource_path('views/vendor/mail'),
|
|
],
|
|
],
|
|
|
|
];
|