Improve from in send email action (#11581)

## Before
<img width="701" alt="image"
src="https://github.com/user-attachments/assets/77184775-5b06-4777-9276-1338cc457070"
/>

## After
<img width="705" alt="image"
src="https://github.com/user-attachments/assets/9528eb0e-54c3-452c-8297-27796ccc75a1"
/>
This commit is contained in:
martmull
2025-04-17 11:34:55 +02:00
committed by GitHub
parent e457ade362
commit 0469aba90b
3 changed files with 43 additions and 0 deletions

View File

@ -18,6 +18,7 @@ import { GmailGetMessageListService } from 'src/modules/messaging/message-import
import { GmailGetMessagesService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service'; import { GmailGetMessagesService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-get-messages.service';
import { GmailHandleErrorService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service'; import { GmailHandleErrorService } from 'src/modules/messaging/message-import-manager/drivers/gmail/services/gmail-handle-error.service';
import { MessageParticipantManagerModule } from 'src/modules/messaging/message-participant-manager/message-participant-manager.module'; import { MessageParticipantManagerModule } from 'src/modules/messaging/message-participant-manager/message-participant-manager.module';
import { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
@Module({ @Module({
imports: [ imports: [
@ -36,6 +37,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
], ],
providers: [ providers: [
GmailClientProvider, GmailClientProvider,
OAuth2ClientProvider,
GmailGetHistoryService, GmailGetHistoryService,
GmailFetchByBatchService, GmailFetchByBatchService,
GmailGetMessagesService, GmailGetMessagesService,
@ -46,6 +48,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
GmailGetMessagesService, GmailGetMessagesService,
GmailGetMessageListService, GmailGetMessageListService,
GmailClientProvider, GmailClientProvider,
OAuth2ClientProvider,
], ],
}) })
export class MessagingGmailDriverModule {} export class MessagingGmailDriverModule {}

View File

@ -0,0 +1,28 @@
import { Injectable } from '@nestjs/common';
import { oauth2_v2, google } from 'googleapis';
import { OAuth2ClientManagerService } from 'src/modules/connected-account/oauth2-client-manager/services/oauth2-client-manager.service';
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
@Injectable()
export class OAuth2ClientProvider {
constructor(
private readonly oAuth2ClientManagerService: OAuth2ClientManagerService,
) {}
public async getOAuth2Client(
connectedAccount: Pick<
ConnectedAccountWorkspaceEntity,
'provider' | 'refreshToken'
>,
): Promise<oauth2_v2.Oauth2> {
const oAuth2Client =
await this.oAuth2ClientManagerService.getOAuth2Client(connectedAccount);
return google.oauth2({
version: 'v2',
auth: oAuth2Client,
});
}
}

View File

@ -7,6 +7,7 @@ import { ConnectedAccountProvider } from 'twenty-shared/types';
import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity'; import { ConnectedAccountWorkspaceEntity } from 'src/modules/connected-account/standard-objects/connected-account.workspace-entity';
import { GmailClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/gmail-client.provider'; import { GmailClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/gmail-client.provider';
import { MicrosoftClientProvider } from 'src/modules/messaging/message-import-manager/drivers/microsoft/providers/microsoft-client.provider'; import { MicrosoftClientProvider } from 'src/modules/messaging/message-import-manager/drivers/microsoft/providers/microsoft-client.provider';
import { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
interface SendMessageInput { interface SendMessageInput {
body: string; body: string;
@ -18,6 +19,7 @@ interface SendMessageInput {
export class MessagingSendMessageService { export class MessagingSendMessageService {
constructor( constructor(
private readonly gmailClientProvider: GmailClientProvider, private readonly gmailClientProvider: GmailClientProvider,
private readonly oAuth2ClientProvider: OAuth2ClientProvider,
private readonly microsoftClientProvider: MicrosoftClientProvider, private readonly microsoftClientProvider: MicrosoftClientProvider,
) {} ) {}
@ -30,7 +32,17 @@ export class MessagingSendMessageService {
const gmailClient = const gmailClient =
await this.gmailClientProvider.getGmailClient(connectedAccount); await this.gmailClientProvider.getGmailClient(connectedAccount);
const oAuth2Client =
await this.oAuth2ClientProvider.getOAuth2Client(connectedAccount);
const { data } = await oAuth2Client.userinfo.get();
const fromEmail = data.email;
const fromName = data.name;
const message = [ const message = [
`From: "${fromName}" <${fromEmail}>`,
`To: ${sendMessageInput.to}`, `To: ${sendMessageInput.to}`,
`Subject: ${sendMessageInput.subject}`, `Subject: ${sendMessageInput.subject}`,
'MIME-Version: 1.0', 'MIME-Version: 1.0',