Paramètres du serveur pour une connexion SMTP
Cette instruction FP définit les paramètres du serveur pour une connexion au client SMTP spécifié dans l’unité centrale selon les paramètres configurés.
Entrée
Définir les données du compte avec les noms et adresses ainsi que le numéro du port et la méthode d’identification.
Nom source (paramètre optionnel)
Mot-clé : NAME
Adresse e-mail source (paramètre requis)
Mot-clé : FROM
Syntaxe : 'FROM='
Adresse IP ou nom d’hôte (paramètre requis).
Adresse IP
Pour une adresse IP, spécifiez le mot clé IPv4
ou IPv6
au début.
Syntaxe pour IPv4 : par ex. 'IPv4=111.122.133.144'
Syntaxe pour IPv6 : par ex. 'IPv6=1111:122:2:1555:0:0:1888'
Notez bien que pour les adresses IPv4, il y a des restrictions d’intervalle. Lorsqu’une adresse IP est spécifiée avec une instruction, il n’y a pas d’erreur d’opération mais la sortie bError passe à TRUE.
Nom d’hôte
Mot-clé : HOST
Syntaxe : 'HOST=SMTP.pidsx.com'
Numéro de port (paramètre optionnel)
Mot-clé : 'PORT'
Syntaxe : 'PORT=xxxxx'
(par défaut : 25)
Intervalle : 1–65535
Identification SSL3/TSL1 (paramètre optionnel). Spécifier si l’identification SSL3/TSL1 doit être utilisée.
Mots-clés :
SSL
: Utiliser SSL3/TLS1
NON
: SSL3/TLS1 non utilisé (par défaut)
Exemples :
Définir FP7_001 en tant que nom source, "pana@pana.com" en tant qu’adresse e-mail source, 102.244.2.110 en tant qu’adresse IP et utiliser le port 25 avec l’identification SSL3/TLS1 : 'NAME=FP7_001,FROM=pana@pana.com,IPv4=192.255.2.10,PORT=25,SSL'
Garder le nom source tel qu’il est, définir "sunx@sunx.com" en tant qu’adresse e-mail source, 1222::a8dd:0:0:6666 en tant qu’adresse IP et utiliser le port 100 avec l’identification SSL3/TLS1 : ',FROM=sunx@sunx.com,IPv6=1111:1222::a8dd:0:0:6666,PORT=100,SSL'
Définir FP7_002 en tant que nom source, "pewsunx@pewsunx.com" en tant qu’adresse e-mail source, "SMTPmailserver.com" en tant que nom d’hôte et utiliser le port 1000 sans identification : 'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com,PORT=1000,NON'
Définir FP7_002 en tant que nom source, "pewsunx@pewsunx.com" en tant qu’adresse e-mail source, "SMTPmailserver.com" en tant que nom d’hôte. Le numéro du port et l’identification restent inchangés : 'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com'
Définir les données de connexion
Méthode d’identification SMTP (mot-clé requis)
Mots-clés :
CRAM : CRAM-MD5 est utilisé
PLAIN1 : PLAIN1 (ID/PASS) est utilisé
PLAIN2 : PLAIN2 (ID/PASS) est utilisé
LOGIN : LOGIN est utilisé
Compte (32 caractères max.)
Mot-clé : ACCOUNT
Syntaxe : 'ACCOUNT=xxx'
(par défaut : root). Utiliser 'ACCOUNT='
pour supprimer le compte.
Mot de passe (32 caractères max., lettres minuscules et majuscules autorisées)
Mot-clé : PASS
Syntaxe : 'PASS=xxx'
(par défaut : root). Utiliser 'PASS='
pour supprimer le mot de passe.
NOUSE
: Les paramètres du mode d’identification SMTP seront ignorés.
KEEP
: Garde les paramètres d’ouverture de session actuels.Exemples :
Définir CRAM-MD5 en tant que mode d’identification SMTP pour le compte "sunx" avec "control" en tant que mot de passe : 'CRAM,ACCOUNT=sunx,PASS=control'
Définir CRAM-MD5 en tant que mode d’identification SMTP pour le compte "root" et supprimer le mot de passe : 'CRAM,ACCOUNT=root,PASS='
Définir PLAIN1 en tant que mode d’identification SMTP, supprimer le nom du compte, utiliser "SUNX" en tant que mot de passe : 'PLAIN1,ACCOUNT=,PASS=SUNX'
Définir PLAIN2 en tant que mode d’identification SMTP, supprimer le nom du compte et le mot de passe : 'PLAIN2,ACCOUNT=,PASS='
Définir LOGIN en tant que mode d’identification SMTP pour le compte "panasonic" et garder le mot de passe déjà défini : 'PLAIN2,ACCOUNT=panasonic'
Définir CRAM-MD5 en tant que mode d’identification SMTP pour le nom du compte qui a déjà été spécifié et définir "SUNX" en tant que mot de passe : 'CRAM,,PASS=SUNX'
Ne pas utiliser de mode d’identification SMTP, ne pas utiliser de compte, ne pas changer de mot de passe : 'NOUSE'
Garder le mode d’identification SMTP, le compte et le mot de passe : 'KEEP'
Définir les paramètres de communication si nécessaire. Notez que le japonais est la langue définie par défaut pour les e-mails.
Taille d’e-mail maximale
Mot-clé : MAILSIZE
Syntaxe : 'MAILSIZE=xxx'
(par défaut : 100)
Intervalle : 1–10240Ko
Délai d’attente de connexion
Mot-clé : TOUT
Syntaxe : 'TOUT=xxx'
(par défaut : 60 secondes.)
Intervalle : 30–300 secondes
Nombre d’essais
Mot-clé : RTRY
Syntaxe : 'RTRY=x'
(par défaut : 3 fois)
Intervalle : 0–3
Intervalle entre les essais
Mot-clé : RTTM
Syntaxe : 'RTTM=xxxxx'
(par défaut : 600 secondes)
Intervalle : 10–86400 secondes
La valeur est spécifiée par unité de 10 secondes. Elle est arrondie à la dizaine inférieure.
Exemple : Lorsque vous spécifiez 38 secondes, la valeur définie sera 30 secondes.
Langue à utiliser pour l’objet et le texte de l’e-mail
Mots-clés :
JPN : Japonais (par défaut)
ENG : Anglais
INITIAL
: Réinitialise le délai d’attente de connexion, le nombre d’essais et l’intervalle entre les essais aux paramètres par défaut.
KEEP
: Garde les paramètres de communication actuels.
Exemples :
Définir la taille maximale des e-mails : 1000Ko, délai d’attente de connexion : 30 secondes, nombre d’essais : 2, intervalle entre les essais : 500 secondes, langue des e-mails : Japonais : 'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,JPN'
Définir la taille maximale des e-mails : 10000Ko, délai d’attente de connexion : 270 secondes, pas d’essai, intervalle entre les essais : 4900 secondes, langue des e-mails : Anglais : 'MAILSIZE=10000,TOUT=270,RTRY=0,RTTM=4900,ENG'
Définir la taille maximale des e-mails : 500Ko, délai d’attente de connexion : 30 secondes, nombre d’essais : 3, intervalle entre les essais : 200 secondes, langue des e-mails : inchangée : 'MAILSIZE=500,TOUT=30,RTRY=3,RTTM=200'
Définir la taille maximale des e-mails : 5000Ko, délai d’attente de connexion : inchangé, nombre d’essais : 5, intervalle entre les essais : 3000 secondes, langue des e-mails : Anglais : 'MAILSIZE=5000,,RTRY=5,RTTM=3000,ENG'
Réinitialiser aux paramètres par défaut (taille maximale des e-mails : 100Ko, délai d’attente de connexion : 60 secondes, nombre d’essais : 3, intervalle entre les essais : 600 secondes, langue des e-mails par défaut : Japonais) : 'INITIAL'
Garder tous les paramètres actuels : 'KEEP'
Sortie
Devient TRUE dans les conditions suivantes :
Si le temps d’attente de connexion est dépassé.
Si une adresse IP est invalide.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Les mots-clés doivent être séparés par une virgule, par ex. 'NAME=abcd,FROM=sender@server.com'
Le nombre de caractères des données STRING ne doit pas être supérieur à 256.
Cette instruction n’est pas disponible dans les programmes d’interruption.
Des lettres majuscules et minuscules peuvent être utilisées pour spécifier les mots-clés. Cependant, l’objet, le texte d’e-mail et le nom du fichier joint sont sensibles à la casse.
Avant d’exécuter l’instruction, vérifiez que sys_bIsEthernetInitializing est FALSE. sys_bIsEthernetInitializing passe à TRUE lorsque l’instruction est exécutée. Lorsque l’instruction est exécutée alors que sys_bIsEthernetInitializing est TRUE, une erreur apparaît.
L’instruction ne peut être exécutée que lorsque le drapeau de requête de transfert pour la configuration de transfert spécifiée ou le numéro nLogID spécifié est FALSE. Lorsque le drapeau de requête de transfert est TRUE, une erreur d’opération apparaît.
Lorsque l’instruction a été exécutée avec succès, les variables système sys_bIsCarry et sys_iEthernetConnectionErrorCode sont réinitialisées.
Lorsqu’une erreur apparaît, utilisez la variable système sys_iEthernetConnectionErrorCode pour connaître le numéro de code d’erreur.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si le même mot-clé est spécifié plusieurs fois.
Si le drapeau de requête d’envoi d’e-mails pour la configuration de transfert spécifiée est "TRUE : Requête de transfert".
Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.
Si l’instruction est exécutée dans un programme d’interruption.
Si le nombre de caractères des données STRING est supérieur à 256.
Si une valeur spécifiée pour un paramètre est en dehors de l’intervalle autorisé.
Si le même mot-clé est spécifié plusieurs fois.
Si le drapeau de requête d’envoi d’e-mails pour la configuration de transfert spécifiée est "TRUE : Requête de transfert".
Si le drapeau de requête de transfert pour un numéro nLogID spécifié est TRUE, par ex. si sys_blsLog0DataRecordingActive est TRUE.
Si l’instruction est exécutée dans un programme d’interruption.
Si le nombre de caractères des données STRING est supérieur à 256.
Si l’instruction est exécutée avec une adresse IP incorrecte, sys_iEthernetConnectionErrorCode est définie sur "1 : Adresse IP spécifiée incorrecte".
Si l’instruction est exécutée pendant l’initialisation d’Ethernet, sys_iEthernetConnectionErrorCode est définie sur "11 : initialisation Ethernet en cours".
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
bError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
END_VAR
Lorsque bSetConnection passe de FALSE à TRUE et lorsque sys_bIsEthernetInitializing est FALSE, l’instruction est exécutée.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 12 ;
NETWORK_BODY
B(B_VARIN,,'NAME=FP7_001~FROM=pewsunx@pewsunx.com~HOST=smtpmailserver.com~PORT=1000~NON',37,6,39,8,);
B(B_VARIN,,'CRAM~ ACCOUNT=sunx~PASS=control',37,7,39,9,);
B(B_VARIN,,'MAILSIZE=1000~TOUT=30~RTRY=2~RTTM=500~ENG',37,8,39,10,);
B(B_CONTACT,,bSetConnection,4,1,6,3,R);
B(B_VAROUT,,bError,53,6,55,8,);
B(B_CONTACT,,sys_bIsEthernetInitializing,13,1,15,3,N);
B(B_F,FP_SMTP_SET_CONNECTION!,,39,4,53,10,,?DEN?DsAccount?DsLogin?DsCommunication?AENO?CbError);
L(6,2,13,2);
L(1,2,4,2);
L(15,2,15,6);
L(15,6,39,6);
L(1,0,1,12);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bSetConnection) And not sys_bIsEthernetInitializing then
FP_SMTP_SET_CONNECTION(sAccount := 'NAME=FP7_001,FROM=pewsunx@pewsunx.com,HOST=smtpmailserver.com,PORT=1000,NON',
sLogin := 'CRAM, ACCOUNT=sunx,PASS=control',
sCommunication := 'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,ENG',
bError => bError);
END_IF;