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:
@ -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 {}
|
||||||
|
|||||||
@ -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,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -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',
|
||||||
|
|||||||
Reference in New Issue
Block a user