Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#1 Tue 18 August 2020 12:04

fanou
Participant occasionnel
Date d'inscription: 26 Jul 2019
Messages: 32

QGIS: Envoie e-mail

Bonjour,

Je souhaiterai envoyer un e-mail automatiquement lorsqu'un nouveau polygone est crée dans une table bien précise.

Je suppose qu'il faut passer par du code python, mais je ne vois pas bien comment faire et surtout ou mettre le code.

J'avais trouver ça sur le net :
https://www.quennec.fr/trucs-astuces/la … simplement

Pouvez-vous éclairer ma lanterne?
Merci, Stéphane

Hors ligne

 

#2 Tue 18 August 2020 13:28

Thom25
Participant occasionnel
Date d'inscription: 16 Sep 2013
Messages: 31

Re: QGIS: Envoie e-mail

Bonjour,

Je ne sais pas si ça peut t'aider, mais as tu regardé du coté des "Actions" dans QGIS. C'est onglet dans les propriétés de la couche qui permet de réaliser des actions lorsque tu manipules cette dernière.

Hors ligne

 

#3 Tue 18 August 2020 15:38

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS: Envoie e-mail

Bonjour,

Soit une couche avec le champ EMAIL

Assez simplement, créer une action et mettre l'expression :

Code:

mailto:[% "EMAIL" %]

A priori, vous pourriez même enrichir le mail avec un sujet préformaté comme suit :

Code:

mailto:[% "EMAIL" %]?subject=[%OBJET_EMAIL%]&body=[%BODY%]

Ca peut être utile, par exemple de créer un champ virtuel OBJET_EMAIL ayant en valeur :

Code:

'Contact au sujet de l'objet '||"lib"||' et de n°'||"id"

geodata au cerema et petits billets en géomatique

Hors ligne

 

#4 Tue 18 August 2020 15:56

fanou
Participant occasionnel
Date d'inscription: 26 Jul 2019
Messages: 32

Re: QGIS: Envoie e-mail

MathieuR a écrit:

Bonjour,

Soit une couche avec le champ EMAIL

Assez simplement, créer une action et mettre l'expression :

Code:

mailto:[% "EMAIL" %]

A priori, vous pourriez même enrichir le mail avec un sujet préformaté comme suit :

Code:

mailto:[% "EMAIL" %]?subject=[%OBJET_EMAIL%]&body=[%BODY%]

Ca peut être utile, par exemple de créer un champ virtuel OBJET_EMAIL ayant en valeur :

Code:

'Contact au sujet de l'objet '||"lib"||' et de n°'||"id"


Merci, je vois bien le principe, mais comment l'envoyer automatiquement à chaque ajout de polygone, sans que l'utilisateur clique sur Action?

Stéphane

Dernière modification par fanou (Tue 18 August 2020 16:17)

Hors ligne

 

#5 Wed 19 August 2020 16:41

MathieuR
Membre
Lieu: aix-en-provence
Date d'inscription: 16 Feb 2009
Messages: 1690
Site web

Re: QGIS: Envoie e-mail

Bonjour,

Pour lancer une fonction à la création d'une entité, voir ce script :

Code:

from PyQt5.QtGui import *

def logLayerModified( onlyGeometry = None ):
    QgsMessageLog.logMessage( "layer modified" )
    QApplication.beep()

def logFeatureAdded(fid):
    QgsMessageLog.logMessage( "feature added, id = " + str(fid) )
    print("send email")
    QApplication.beep() 

def logEditingStarted():
    QgsMessageLog.logMessage( "editing started" )
    QApplication.beep() 

def logCommittedFeaturesAdded( layerId, addedFeatures ):
    message = layerId + " has features added: "
    for feature in addedFeatures:
        message += str( feature.id() ) + ", "
    QgsMessageLog.logMessage( message )
    QApplication.beep()         

layer = QgsProject.instance().mapLayersByName('polygones')[0]

layer.layerModified.connect( logLayerModified )
layer.featureAdded.connect( logFeatureAdded )
layer.editingStarted.connect( logEditingStarted )
layer.committedFeaturesAdded.connect( logCommittedFeaturesAdded )

tiré de https://gis.stackexchange.com/questions … ore-commit

Dans votre cas, ne retenez que logFeatureAdded dans laquelle vous pourriez mettre la fonction d'envoi d'e-mail


geodata au cerema et petits billets en géomatique

Hors ligne

 

Pied de page des forums

Powered by FluxBB