diff --git a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
index 5674a609894df9caab3d12ca999f715491cc4cf6..a62dadce588ce4bd5cbf63f67ef8dcdf0076da91 100644
--- a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
+++ b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.html
@@ -55,19 +55,19 @@
         <mat-form-field>
             <mat-label class="attachLabel">{{lang.mailSubject}}</mat-label>
             <input matInput [readonly]="!canManageMail()" [(ngModel)]="numericPackage.object" maxlength="70" required>
-            <button mat-icon-button matSuffix *ngFor="let keyVal of emailAttachTool | keyvalue"
-                [disabled]="!canManageMail() || emailAttachTool[keyVal.key].list.length === 0" [title]="emailAttachTool[keyVal.key].title"
-                (click)="$event.stopPropagation();currentEmailAttachTool=keyVal.key;"
+            <button mat-icon-button matSuffix *ngFor="let keyVal of numericPackageAttachTool | keyvalue"
+                [disabled]="!canManageMail() || numericPackageAttachTool[keyVal.key].list.length === 0" [title]="numericPackageAttachTool[keyVal.key].title"
+                (click)="$event.stopPropagation();numericPackageCurrentAttachTool=keyVal.key;"
                 [matMenuTriggerFor]="emailAttachListMenu">
-                <mat-icon class="{{emailAttachTool[keyVal.key].icon}}"
+                <mat-icon class="{{numericPackageAttachTool[keyVal.key].icon}}"
                     [class.activeButton]="isSelectedAttachType(keyVal.key)" color="primary">
                 </mat-icon>
             </button>
             <mat-menu #emailAttachListMenu="matMenu" [class]="'attachListMenu'">
-                <ng-container *ngFor="let keyVal of emailAttachTool | keyvalue">
-                    <ng-container *ngIf="keyVal.key === currentEmailAttachTool">
+                <ng-container *ngFor="let keyVal of numericPackageAttachTool | keyvalue">
+                    <ng-container *ngIf="keyVal.key === numericPackageCurrentAttachTool">
                         <button mat-menu-item style="line-height: normal;" disableRipple
-                            *ngFor="let attach of emailAttachTool[keyVal.key].list"
+                            *ngFor="let attach of numericPackageAttachTool[keyVal.key].list"
                             [disabled]="isSelectedAttach(attach,keyVal.key)"
                             (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original');">
                             <span (click)="$event.stopPropagation();toggleAttach(attach,keyVal.key,'original')"
@@ -86,7 +86,7 @@
             <input matInput [value]="reference" readonly>
         </mat-form-field>
         <div class="attachMsg"
-            *ngIf="numericPackage.mainExchangeDoc === null && emailAttach.length === 0 && canManageMail()">
+            *ngIf="numericPackage.mainExchangeDoc === null && numericPackageAttach.length === 0 && canManageMail()">
             {{lang.attachItemToNumericPackage}}
             <i class="fas fa-arrow-up"></i>
         </div>
@@ -105,10 +105,10 @@
                     </p>
                 </mat-list-item>
             </mat-list>
-            <mat-divider *ngIf="emailAttach.length > 0"></mat-divider>
-            <mat-list *ngIf="emailAttach.length > 0">
+            <mat-divider *ngIf="numericPackageAttach.length > 0"></mat-divider>
+            <mat-list *ngIf="numericPackageAttach.length > 0">
                 <h3 mat-subheader class="attachLabel">{{canManageMail() ? lang.attachmentsNumericPackageToSend : lang.attachmentsNumericPackage}}</h3>
-                <mat-list-item class="numericPackageAttach" *ngFor="let attach of emailAttach; let i=index">
+                <mat-list-item class="numericPackageAttach" *ngFor="let attach of numericPackageAttach; let i=index">
                     <p mat-line class="numericPackageAttachItem">
                         <span style="overflow: hidden;text-overflow: ellipsis;"
                             [title]="attach.label">{{attach.label}}</span>
@@ -169,10 +169,10 @@
     <span class="divider-modal"></span>
     <div mat-dialog-actions class="actions">
         <button mat-raised-button color="primary"
-            *ngIf="canManageMail() && privilegeService.hasCurrentUserPrivilege('sendmail') && emailStatus !== 'ERROR'" (click)="onSubmit()"
+            *ngIf="canManageMail() && privilegeService.hasCurrentUserPrivilege('sendmail') && numericPackageStatus !== 'ERROR'" (click)="onSubmit()"
             [disabled]="recipients.length === 0 || numericPackage.mainExchangeDoc === null || loading">{{lang.send}}</button>
         <button mat-raised-button color="warn" (click)="deleteEmail()"
-            *ngIf="data.emailId && !loading && emailStatus === 'ERROR'"
-            [disabled]="headerService.user.id !== emailCreatorId">{{lang.delete}}</button>
+            *ngIf="data.emailId && !loading && numericPackageStatus === 'ERROR'"
+            [disabled]="headerService.user.id !== numericPackageCreatorId">{{lang.delete}}</button>
     </div>
 </div>
\ No newline at end of file
diff --git a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
index 7bda26d7cc39c02aa8e1e2f4939aae45791805e3..5859f19dbb85ad3e627960a9f8863781ec4603f5 100644
--- a/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
+++ b/src/frontend/app/sentResource/sent-numeric-package-page/sent-numeric-package-page.component.ts
@@ -30,8 +30,6 @@ export class SentNumericPackagePageComponent implements OnInit {
     lang: any = LANG;
     loading: boolean = true;
 
-    readonly separatorKeysCodes: number[] = [COMMA];
-
     availableEmailModels: any[] = [];
     availableSignEmailModels: any[] = [];
 
@@ -41,10 +39,6 @@ export class SentNumericPackagePageComponent implements OnInit {
 
     recipients: any[] = [];
 
-    copies: any[] = [];
-
-    invisibleCopies: any[] = [];
-
     recipientsCtrl: FormControl = new FormControl();
 
     emailSignListForm = new FormControl();
@@ -52,14 +46,10 @@ export class SentNumericPackagePageComponent implements OnInit {
 
     filteredEmails: Observable<string[]>;
 
-    showCopies: boolean = false;
-    showInvisibleCopies: boolean = false;
-
-    emailCreatorId: number = null;
-    emailId: number = null;
-    emailStatus: string = 'WAITING';
-    currentEmailAttachTool: string = '';
-    emailAttachTool: any = {
+    numericPackageCreatorId: number = null;
+    numericPackageStatus: string = 'WAITING';
+    numericPackageCurrentAttachTool: string = '';
+    numericPackageAttachTool: any = {
         document: {
             icon: 'fa fa-file',
             title: this.lang.attachMainDocument,
@@ -76,7 +66,7 @@ export class SentNumericPackagePageComponent implements OnInit {
             list: []
         },
     };
-    emailAttach: any = [];
+    numericPackageAttach: any = [];
 
     numericPackage: any = {
         mainExchangeDoc: null,
@@ -196,13 +186,13 @@ export class SentNumericPackagePageComponent implements OnInit {
             this.http.get(`../../rest/messageExchanges/${emailId}`).pipe(
                 map((data: any) => data.messageExchange),
                 tap((data: any) => {
-                    this.emailCreatorId = data.userId;
+                    this.numericPackageCreatorId = data.userId;
 
                     this.recipients = [data.recipient];
 
                     this.currentSender.label = data.sender;
                     this.numericPackage.object = data.object;
-                    this.emailStatus = data.status.toUpperCase();
+                    this.numericPackageStatus = data.status.toUpperCase();
                     this.numericPackage.content = data.body;
                     this.communicationType = data.communicationType;
                     this.reference = data.reference;
@@ -215,34 +205,34 @@ export class SentNumericPackagePageComponent implements OnInit {
                     this.messageReview = this.reversePipe.transform(this.messageReview);
 
 
-                    console.log(this.emailAttachTool);
+                    console.log(this.numericPackageAttachTool);
 
                     if (data.disposition.tablename === 'res_letterbox') {
                         this.numericPackage.mainExchangeDoc = {
-                            ...this.emailAttachTool['document'].list[0],
+                            ...this.numericPackageAttachTool['document'].list[0],
                             typeLabel: this.lang.mainDocument,
                             type: 'document'
                         }
                         
-                        this.emailAttach = this.emailAttach.concat(this.emailAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1));
+                        this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1));
                     } else {
                         this.numericPackage.mainExchangeDoc = {
-                            ...this.emailAttachTool['attachments'].list.filter((item: any) => item.id == data.disposition.res_id)[0],
+                            ...this.numericPackageAttachTool['attachments'].list.filter((item: any) => item.id == data.disposition.res_id)[0],
                             type: 'attachments'
                         }
-                        this.emailAttach = this.emailAttach.concat(this.emailAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1 && item.id != data.disposition.res_id));
+                        this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['attachments'].list.filter((item: any) => data.attachments.indexOf(item.id.toString()) > -1 && item.id != data.disposition.res_id));
 
                     }
 
                     if (data.resMasterAttached && data.disposition.tablename !== 'res_letterbox') {
-                        this.emailAttach.push({
-                            ...this.emailAttachTool['document'].list[0],
+                        this.numericPackageAttach.push({
+                            ...this.numericPackageAttachTool['document'].list[0],
                             typeLabel: this.lang.mainDocument,
                             type: 'document'
                         });
                     }
 
-                    this.emailAttach = this.emailAttach.concat(this.emailAttachTool['notes'].list.filter((item: any) => data.notes.indexOf(item.id.toString()) > -1));
+                    this.numericPackageAttach = this.numericPackageAttach.concat(this.numericPackageAttachTool['notes'].list.filter((item: any) => data.notes.indexOf(item.id.toString()) > -1));
 
                     resolve(true);
                 }),
@@ -315,12 +305,12 @@ export class SentNumericPackagePageComponent implements OnInit {
                 tap((data: any) => {
                     Object.keys(data).forEach(element => {
                         if (element === 'resource') {
-                            this.emailAttachTool.document.list = [];
+                            this.numericPackageAttachTool.document.list = [];
                             if (!this.functions.empty(data[element])) {
-                                this.emailAttachTool.document.list = [data[element]];
+                                this.numericPackageAttachTool.document.list = [data[element]];
                             }
                         } else {
-                            this.emailAttachTool[element].list = data[element].map((item: any) => {
+                            this.numericPackageAttachTool[element].list = data[element].map((item: any) => {
                                 return {
                                     ...item,
                                     original: item.original !== undefined ? item.original : true,
@@ -399,7 +389,7 @@ export class SentNumericPackagePageComponent implements OnInit {
 
     onSubmit() {
         this.loading = true;
-        this.emailStatus = 'WAITING';
+        this.numericPackageStatus = 'WAITING';
         if (this.data.emailId === null) {
             if (this.numericPackage.object === '') {
                 const dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.confirm, msg: this.lang.warnEmptySubject } });
@@ -422,7 +412,7 @@ export class SentNumericPackagePageComponent implements OnInit {
     createEmail(closeModal: boolean = true) {
         this.http.post(`../../rest/resources/${this.data.resId}/messageExchange`, this.formatNumericPackage()).pipe(
             tap(() => {
-                this.notify.success(`Pli numérique envoyé`);
+                this.notify.success(this.lang.numericPackageSent);
 
                 this.closeModal('success');
             }),
@@ -435,32 +425,28 @@ export class SentNumericPackagePageComponent implements OnInit {
     }
 
     deleteEmail() {
-        // TODO : useless ? can not delete m2m
         const dialogRef = this.dialog.open(ConfirmComponent, { panelClass: 'maarch-modal', autoFocus: false, disableClose: true, data: { title: this.lang.delete, msg: this.lang.confirmAction } });
 
         dialogRef.afterClosed().pipe(
-            // filter((data: string) => data === 'ok'),
-            // exhaustMap(() => this.http.delete(`../../rest/emails/${this.data.emailId}`)),
-            // tap(() => {
-            //     this.notify.success(this.lang.emailDeleted);
-            //     this.closeModal('success');
-            // }),
-            // finalize(() => this.loading = false),
-            // catchError((err) => {
-            //     this.notify.handleSoftErrors(err);
-            //     return of(false);
-            // })
+            filter((data: string) => data === 'ok'),
+            exhaustMap(() => this.http.delete(`../../rest/messageExchanges/${this.data.emailId}`)),
+            tap(() => {
+                this.notify.success(this.lang.numericPackageDeleted);
+                this.closeModal('success');
+            }),
+            finalize(() => this.loading = false),
+            catchError((err) => {
+                this.notify.handleSoftErrors(err);
+                return of(false);
+            })
         ).subscribe();
     }
 
     updateEmail(closeModal: boolean = true) {
         this.http.put(`../../rest/emails/${this.data.emailId}`, this.formatNumericPackage()).pipe(
             tap(() => {
-                if (this.emailStatus === 'DRAFT') {
-                    // this.notify.success(this.lang.draftUpdated);
-                } else {
-                    this.notify.success(`Pli numérique envoyé`);
-                }
+
+                this.notify.success(this.lang.numericPackageSent);
 
                 if (closeModal) {
                     this.closeModal('success');
@@ -482,7 +468,7 @@ export class SentNumericPackagePageComponent implements OnInit {
                 type: type
             }
         } else {
-            this.emailAttach.push({
+            this.numericPackageAttach.push({
                 ...item,
                 typeLabel: item.typeLabel !== undefined ? item.typeLabel : this.lang.mainDocument,
                 type: type
@@ -491,7 +477,7 @@ export class SentNumericPackagePageComponent implements OnInit {
     }
 
     removeAttach(index: number) {
-        this.emailAttach.splice(index, 1);
+        this.numericPackageAttach.splice(index, 1);
     }
 
     formatNumericPackage() {
@@ -509,23 +495,23 @@ export class SentNumericPackagePageComponent implements OnInit {
         numericPackage.object = this.numericPackage.object;
         numericPackage.content = this.numericPackage.content;
         numericPackage.contacts = this.recipients.map(recipient => recipient.id);
-        numericPackage.joinAttachment = this.emailAttach.filter((attach: any) => attach.type === 'attachments').map((attach: any) => attach.id);
-        numericPackage.notes = this.emailAttach.filter((attach: any) => attach.type === 'notes').map((attach: any) => attach.id);
+        numericPackage.joinAttachment = this.numericPackageAttach.filter((attach: any) => attach.type === 'attachments').map((attach: any) => attach.id);
+        numericPackage.notes = this.numericPackageAttach.filter((attach: any) => attach.type === 'notes').map((attach: any) => attach.id);
         numericPackage.senderEmail = this.currentSender.id;
 
         return numericPackage;
     }
 
     isSelectedAttach(item: any, type: string) {
-        return this.emailAttach.filter((attach: any) => attach.id === item.id && attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && this.numericPackage.mainExchangeDoc.id === item.id && type === this.numericPackage.mainExchangeDoc.type);
+        return this.numericPackageAttach.filter((attach: any) => attach.id === item.id && attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && this.numericPackage.mainExchangeDoc.id === item.id && type === this.numericPackage.mainExchangeDoc.type);
     }
 
     isSelectedAttachType(type: string) {
-        return this.emailAttach.filter((attach: any) => attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && type === this.numericPackage.mainExchangeDoc.type);
+        return this.numericPackageAttach.filter((attach: any) => attach.type === type).length > 0 || (this.numericPackage.mainExchangeDoc !== null && type === this.numericPackage.mainExchangeDoc.type);
     }
 
     canManageMail() {
-        if ((this.data.emailId === null) || (this.emailStatus !== 'SENT' && this.headerService.user.id === this.emailCreatorId)) {
+        if ((this.data.emailId === null) || (this.numericPackageStatus !== 'SENT' && this.headerService.user.id === this.numericPackageCreatorId)) {
             this.recipientsCtrl.enable();
             return true;
         } else {
diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts
index 2e9cc9a3c714d7a92ad51d012a0a1be399b40d08..2aa83d359274bbfa409a0d1403d053200f9ea7d6 100755
--- a/src/frontend/lang/lang-en.ts
+++ b/src/frontend/lang/lang-en.ts
@@ -1596,6 +1596,8 @@ export const LANG_EN = {
     "noPrivileges" : "Insufficient privileges",
     "mustDeleteUsersWithNoPrivileges" : "You must delete users with insufficient privileges",
     "sendNumericPackage" : "Send a numeric package",
+    "numericPackageSent" : "Numeric package sent",
+    "numericPackageDeleted" : "Numeric package deleted",
     "sendNumericPackageInfo" : "You can send mail and attachments between <b> two instances </b> of Maarch Courrier. <br /> <br /> You will receive <b> an acknowledgment of receipt </b> and you will be able <b> follow the progress </b> of the mail at the recipient. (see <a href=\"{0}\" target=\"_blank\"> Maarch2GEC </a> for more information).", 
     "mailSubject" : "Mail subject", 
     "attachItemToNumericPackage" : "Attach an element to sending mail",
diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts
index 41ad95fe466e5bea3d067ece7d75baf55ddd60a6..427c40007455c5016fcbd8321535e166078a5487 100755
--- a/src/frontend/lang/lang-fr.ts
+++ b/src/frontend/lang/lang-fr.ts
@@ -1636,6 +1636,8 @@ export const LANG_FR = {
     "noPrivileges" : "Privilèges insuffisants",    
     "mustDeleteUsersWithNoPrivileges" : "Veuillez supprimer les personnes dont les privilèges sont insuffisants", 
     "sendNumericPackage" : "Envoyer un pli numérique",
+    "numericPackageSent" : "Pli numérique envoyé",
+    "numericPackageDeleted" : "Pli numérique supprimé",
     "sendNumericPackageInfo" : "Vous pouvez envoyer un courrier et des pièces jointes entre <b>deux instances</b> de Maarch Courrier.<br /><br />Vous recevrez <b>un accusé de réception</b> et vous pourrez <b>suivre l'avancement</b> du courrier chez le destinataire. (voir <a href=\"{0}\" target=\"_blank\">Maarch2GEC</a> pour plus d'informations).", 
     "mailSubject" : "Objet du courrier", 
     "attachItemToNumericPackage" : "Attacher un document / une pièce jointe au courrier à transmettre", 
diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts
index d09b4069d229859999be1031f2f7f964bf035ae9..d7ebd7fbdd9ad4b58219d5d6990e57809eb2e1cf 100755
--- a/src/frontend/lang/lang-nl.ts
+++ b/src/frontend/lang/lang-nl.ts
@@ -1621,6 +1621,8 @@ export const LANG_NL = {
     "noPrivileges" : "Insufficient privileges", //_TO_TRANSLATE
     "mustDeleteUsersWithNoPrivileges" : "You must delete users with insufficient privileges", //_TO_TRANSLATE
     "sendNumericPackage" : "Send a numeric package", //_TO_TRANSLATE
+    "numericPackageSent" : "Numeric package sent", //_TO_TRANSLATE
+    "numericPackageDeleted" : "Numeric package deleted", //_TO_TRANSLATE
     "sendNumericPackageInfo" : "You can send mail and attachments between <b> two instances </b> of Maarch Courrier. <br /> <br /> You will receive <b> an acknowledgment of receipt </b> and you will be able <b> follow the progress </b> of the mail at the recipient. (see <a href=\"{0}\" target=\"_blank\"> Maarch2GEC </a> for more information).", //_TO_TRANSLATE
     "mailSubject" : "Mail subject", //_TO_TRANSLATE
     "attachItemToNumericPackage" : "Attach an element to sending mail", //_TO_TRANSLATE