#1 Fri 18 October 2013 11:25
- Pim
- Participant actif
- Lieu: Plesder
- Date d'inscription: 2 Aug 2007
- Messages: 59
Adresse mail
Bonjour,
Je souhaiterai savoir si il est possible d'envoyer un mail via FME
Je m'explique :
Sous oracle, nous avons une table qui surveille les différentes couches modifiées par 4 personnes en charge d'un secteur chacun.
A partir de cette table et d'un script FME, nous sortons un fichier xls qui liste toutes les modifications par secteur.
Est ce possible d'envoyer le résultat par mail pour chaque personne à charge de son secteur ???
Merci d'avance
Pim
Hors ligne
#2 Fri 18 October 2013 12:21
Re: Adresse mail
Pour l'instant le plus simple et d'utiliser PythonCaller et le package email :
http://docs.python.org/2/library/email-examples.html
Hors ligne
#3 Fri 18 October 2013 13:08
- Pim
- Participant actif
- Lieu: Plesder
- Date d'inscription: 2 Aug 2007
- Messages: 59
Re: Adresse mail
Merci Ogayte
Quand tu dis "pour l'instant", c'est que ça va être prévu dans les prochaines versions de FME???
Dernière modification par Pim (Fri 18 October 2013 15:25)
Hors ligne
#4 Fri 18 October 2013 17:19
- FANTIN
- Juste Inscrit !
- Lieu: Winchester, UK
- Date d'inscription: 25 Feb 2008
- Messages: 6
Re: Adresse mail
Bonjour Pim,
Voici ce que j'ai fait lorsque j'ai du couvrir le meme type de fonctionalite (la limitation etant que l'information est dans le corps de l'email plutot que dans un fichier excel) :
J'ai construit un custom transformer qui comprend une serie de transformers servant a construire le contenu de l'objet Json suivant:
Code:
{ "email_to":"[email_to]", "email_subject":"[email_subject]", "email_body":"[EmailBody]" }
Une fois cette chaine de caracteres remplie avec les valeurs necessaires, je connecte un FMEServerNotifier. Les parametres de notifications que j'utilise sont les suivants:
- Topic => le nom du topic cree avec FME Server
- Content => le nom de l'attribut qui contient la chaine de caracteres ci-dessus
- Content Type: text/plain
Sur FME Server, votre admin doit creer le Topic necessaire en tant que Email notification.
http://fmepedia.safe.com/articles/How_T … erNotifier
FME Server 2013:
http://fmepedia.safe.com/articles/How_T … ial-Series
L'avantage d'avoir un custom transformer c'est qu'il est reutilisable dans n'importe quel workspace.
Si vous n'avez pas FME Server, la seule option est effectivement d'utiliser Python.
Maryse
Hors ligne
#5 Fri 18 October 2013 18:21
Re: Adresse mail
Merci Ogayte
Quand tu dis "pour l'instant", c'est que ça va être prévu dans les prochaines versions de FME???
Pas à ma connaissance mais on a prévu de publier des Transformers personnalisés pour permettre l'envoi de mails, sms et autres...
J'ai bon espoir pour la fin de l'année.
Hors ligne
#6 Mon 21 October 2013 08:50
- Pim
- Participant actif
- Lieu: Plesder
- Date d'inscription: 2 Aug 2007
- Messages: 59
Re: Adresse mail
Merci à vous deux
Fantin, nous avons une licence en local et non une licence serveur mais merci pour ta réponse
Hors ligne
#7 Tue 22 October 2013 13:43
- Pim
- Participant actif
- Lieu: Plesder
- Date d'inscription: 2 Aug 2007
- Messages: 59
Re: Adresse mail
Bonjour,
Je reviens pour donner une autre solution en associant un script python et un script powershell
car nous sommes tombés sur un autre problème avec la messagerie exchange de l'entreprise
voici le script python :
Code:
import os import fmeobjects # Template Function interface: def processFeature(feature): pass # Template Class Interface: class FeatureProcessor(object): def __init__(self): pass def input(self,feature): self.pyoutput(feature) def close(self): os.chdir("D:\\SDIS35_FME") a = ("powershell ./mailtest3.ps1 -serveur %s -expediteur %s -destinataire %s -fichier %s -objet %s -texte %s " % ('EXCH02','anthony.barille@sdis35.fr','anthony.barille@sdis35.fr','D:\\SDIS35_FME\Mailing.py',"\'Test\'","\'J'ai réussi\'")) os.system (a)
et voici le script powershell :
Code:
#param($serveur,$expediteur,$destinataire,$fichier,$objet,$texte) Param ( [String] $serveur , #= $args[0] [String] $expediteur, #= $args[1] [String] $destinataire, #= $args[2] [String] $fichier, #= $args[3] [String] $objet, #= $args[4] [String] $texte) # = $args[5] $message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte If ( -not( ($serveur -eq '') -or ($expediteur -eq '') -or ($destinataire -eq '') -or ($objet -eq '') -or ($texte -eq '') ) ) { #write-host '$serveur : ' $serveur #write-host '$expediteur : ' $expediteur #write-host '$destinataire : ' $destinataire #write-host '$objet : ' $objet #write-host '$texte : ' $texte #write-host '$fichier : ' $fichier If (-not ($fichier -eq '')) { $attachment = new-object System.Net.Mail.Attachment $fichier $message.Attachments.Add($attachment) } $client = new-object System.Net.Mail.SmtpClient $serveur #$client.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials $client.Send($message) } else { write-host "Erreur de'envoi" ; exit 1 }
Peut-être que ça aidera quelqu'un.
Par contre il faut la machine soit autorisée à envoyer des mails (à voir avec votre service informatique)
@plus
Pim
Dernière modification par Pim (Tue 22 October 2013 16:11)
Hors ligne