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 { 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 { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
@Module({
imports: [
@ -36,6 +37,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
],
providers: [
GmailClientProvider,
OAuth2ClientProvider,
GmailGetHistoryService,
GmailFetchByBatchService,
GmailGetMessagesService,
@ -46,6 +48,7 @@ import { MessageParticipantManagerModule } from 'src/modules/messaging/message-p
GmailGetMessagesService,
GmailGetMessageListService,
GmailClientProvider,
OAuth2ClientProvider,
],
})
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 { 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 { OAuth2ClientProvider } from 'src/modules/messaging/message-import-manager/drivers/gmail/providers/oauth2-client.provider';
interface SendMessageInput {
body: string;
@ -18,6 +19,7 @@ interface SendMessageInput {
export class MessagingSendMessageService {
constructor(
private readonly gmailClientProvider: GmailClientProvider,
private readonly oAuth2ClientProvider: OAuth2ClientProvider,
private readonly microsoftClientProvider: MicrosoftClientProvider,
) {}
@ -30,7 +32,17 @@ export class MessagingSendMessageService {
const gmailClient =
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 = [
`From: "${fromName}" <${fromEmail}>`,
`To: ${sendMessageInput.to}`,
`Subject: ${sendMessageInput.subject}`,
'MIME-Version: 1.0',