Instruction "$email.attachement" avec plusieurs documents à envoyer

je m’initie à la nouvelle façon d’envoyer des Emails (v17R4)

je bute sur l’utilisation de "mail.attachement"lorsque’"il faut envoyer plusieurs documents

avec l’ancienne formule j’avais construit un tableau des pièces jointes puis je les concaténais pour intégrer le tout dans l’instruction SMTP_Attachment

		$nbE:=Taille tableau(TabPieceJointe)
		$erreur:=SMTP_New ($smtp_id)  //on crée le mail
		Si ($nbE#0)  //on concatene les pièces jointes
			Boucle ($nPA;1;$nbE)
				vdest:=TabPieceJointe{$nPA}
				$erreur:=SMTP_Attachment ($smtp_id;vdest;2;0;"Decompte";"Application/pdf")
			Fin de boucle 
		Fin de si 

comment faire désormais avec l’instruction $email.attachement:=MAIL Créer pièce jointe(document))

merci de votre aide

cordialement

: Jacques BOUSCAMBERT

je m’initie à la nouvelle façon d’envoyer des Emails (v17R4)
Poiurquoi pas la 17R5 ?

Voici comment j’envoie mes attachments (via des chemins d’accès et non des blob)

<code 4D>
C_LONGINT($L_Size)
$L_Size:=Size of array($rT_PJ_Serveur_out)
If ($L_Size>0)

$email.attachments:=New collection

C_LONGINT($i;$L_Indice)
$L_Indice:=0
For ($i;1;$L_Size)
	
	If (Test path name($rT_PJ_Serveur_out{$i})=Is a document)
		$email.attachments[$L_Indice]:=MAIL New attachment($rT_PJ_Serveur_out{$i})
	End if 
	$L_Indice:=$L_Indice+1
End for 

End if
</code 4D>

merci

et pour l’envoi est ce que tu écris l’instruction

Form.email.attachments:=MAIL Créer pièce jointe( $email.attachments)

ou :

Form.email.attachments:=Créer collection(MAIL Créer pièce jointe( $email.attachments))

merci pour cette précision

cordialement

ok j’ai trouvé

c’était plus simple que je ne l’imaginais

merci pour ton aide

Bonjour Jacques,

désolé, j’étais en zone morte.

pour les PJ, je fais comme cela :

<code 4D>
$mail.attachments.push(MAIL New attachment($nomDocument;$entity.Nom))

</code 4D>

Patrick

bonjour

merci je vais essayer mais cette ligne fonctionne t’elle pour envoyer plusieurs documents dont le chemin d’accès est listé dans un tableau

cordialement

tout à fait.
si tu insères cette ligne dans une boucle, tu remplaces nomDocument par mon tableau{$xx} et le second paramètre par le nom du doc ou autre.

Patrick

quel est l’intérêt de l’instruction “push” ?

la doc te dirait :
La méthode collection.push( ) ajoute un ou plusieurs élément(s) à la fin de la collection d’origine et retourne la collection modifiée.

A partir du moment où tu travailles en mode point et avec des collections, le mieux est d’utiliser les fonctionnalités qui existent dans ce domaine :wink:

ok super

merci

: Patrick EMANUEL

A partir du moment où tu travailles en mode point et avec des
collections, le mieux est d’utiliser les fonctionnalités qui existent
dans ce domaineWink

Je me sens visé :mrgreen:

Dans mon exemple on ne push pas mais on indique l’indice de la pièce jointe conséquence : nul hack hétérodoxe dans la façon de faire :sunglasses:

Bonjour Bertrand,

: Bertrand SOUBEYRAND

Je me sens visé :mrgreen:

En aucun cas :pray:, la remarque est là pour inciter Jacques à aller voir la documentation qui est riche d’informations.

Patrick

merci à vous deux

vous m’avez fait découvrir une autre approche ( objet)

pour moi :

  • la différence entre objet et collection n’est pas évidente
  • et la distinction entre les les instructions à utiliser par l’approche objet et celle plus traditionnelle ne m’apparait pas évidente dans la documentation

j’espère qu’il y aura un peu de littérature à ce sujet

si vous en connaissez merci de me guider

cordialement

A ma connaissance, tu trouveras de l’information sur :

  • 4D blog
  • la documentation officielle
  • le forum

Maintenant, il y a aussi le World tour qui est aussi une source d’informations importantes. Tous les développeurs qui y vont en sont généralement plus que satisfait et en plus, tu repars avec une clé remplie d’exemples dont certains peuvent être mis en application très rapidement.
Celui de Lyon n’a pas encore eu lieu (je le sais car j’y vais).
Je ne peux que te recommander à y aller (aux 2 jours)

Patrick

merci … j’avance

je me suis inscrit au World tour passant à lyon mais, en raison d’un autre engagement incontournable, je ne pourrai pas y aller
il me reste la lecture

: Jacques BOUSCAMBERT

pour moi :

  • la différence entre objet et collection n’est pas évidente
  • Une collection est un type de variable qui peut contenir tout type de données. C’est juste un container.
  • Un objet est un type de variable plus élaboré qui peut contenir des variables et des méthodes pour exécuter une fonctionnalité.

Ok compris

merci