banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#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

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

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


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

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

ogayte
Participant assidu
Lieu: Saint-Estève
Date d'inscription: 6 Mar 2006
Messages: 658
Site web

Re: Adresse mail

Pim a écrit:

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.


Olivier Gayte
http://www.veremes.com
+33 (0)4-68-38-65-27

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 sad 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

 

Pied de page des forums

Powered by FluxBB