Impostazioni server per connessione SMTP
Questa istruzione FP definisce le impostazioni server per la connessione al client SMTP specificato nella CPU in base a parametri specifici.
Ingresso
Impostare i dati dell'account con nome, indirizzi, numero della porta e metodo di autenticazione.
Nome source (parametro opzionale)
Parola chiave: NAME
Indirizzo e-mail source (parametro richiesto)
Parola chiave: FROM
Sintassi: 'FROM='
Indirizzo IP o nome host (parametro richiesto).
Indirizzo IP
Per un indirizzo IP, specificare la parola chiave IPv4
o IPv6
all'inizio.
Sintassi per IPv4: p.es. 'IPv4=111.122.133.144'
Sintassi per IPv6: p.es. 'IPv6=1111:122:2:1555:0:0:1888'
Si ricorda che per gli indirizzi Ipv4 vi sono restrizioni di intervallo. Quando un indirizzo IP non valido viene specificato con un'istruzione, non vi saranno errori di funzionamento, ma l'uscita bError verrà impostata su TRUE.
Nome host
Parola chiave: HOST
Sintassi: 'HOST=SMTP.pidsx.com'
Numero porta (parametro opzionale)
Parola chiave: 'PORT'
Sintassi: 'PORT=xxxxx'
(default: 25)
Intervallo: 1–65535
Autenticazione SSL3/TSL1 (parametro opzionale). Specificare se utilizzare o meno l'autenticazione SSL3/TSL1.
Parole chiave:
SSL
: Utilizza SSL3/TLS1
NON
: SSL3/TLS1 non utilizzato (default)
Esempi:
Impostare FP7_001 come nome source, "pana@pana.com" come indirizzo e-mail source, 102.244.2.110 come indirizzo IP e utilizzare la porta 25 con autenticazione SSL3/TLS1: 'NAME=FP7_001,FROM=pana@pana.com,IPv4=192.255.2.10,PORT=25,SSL'
Mantenere il nome source corrente, impostare "sunx@sunx.com" come indirizzo e-mail source, 1222::a8dd:0:0:6666 come indirizzo IP e utilizzare la porta 100 con autenticazione SSL3/TLS1: ',FROM=sunx@sunx.com,IPv6=1111:1222::a8dd:0:0:6666,PORT=100,SSL'
Impostare FP7_002 come nome source, "pewsunx@pewsunx.com" come indirizzo e-mail source, "SMTPmailserver.com" come nome host e utilizzare la porta 1000 senza autenticazione: 'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com,PORT=1000,NON'
Impostare FP7_002 come nome source, "pewsunx@pewsunx.com" come indirizzo e-mail source, "SMTPmailserver.com" come nome host. Non modificare le impostazioni per il numero di porta e l'autenticazione: 'NAME=FP7_002,FROM=pewsunx@pewsunx.com,HOST=SMTPmailserver.com'
Impostare i dati di login
Metodo di autenticazione SMTP (parola chiave richiesta)
Parole chiave:
CRAM: viene utilizzato CRAM-MD5
PLAIN1: viene utilizzato PLAIN1 (ID/PASS)
PLAIN2: viene utilizzato PLAIN2 (ID/PASS)
LOGIN: viene utilizzato LOGIN
Account (max. 32 caratteri)
Parola chiave: ACCOUNT
Sintassi: 'ACCOUNT=xxx'
(default: root). Utilizzare 'ACCOUNT='
per eliminare l'account.
Password (max. 32 caratteri, maiuscole e minuscole consentite)
Parola chiave: PASS
Sintassi: 'PASS=xxx'
(default: root). Utilizzare'PASS='
per eliminare la password.
NOUSE
: L'impostazione per il metodo di autenticazione SMTP verrà ignorata.
KEEP
: Mantiene le impostazioni di login attuali.Esempi:
Impostare CRAM-MD5 come metodo di autenticazione SMTP per l'account "sunx" con password "control": 'CRAM,ACCOUNT=sunx,PASS=control'
Impostare CRAM-MD5 come metodo di autenticazione SMTP per l'account "root" ed eliminare la password: 'CRAM,ACCOUNT=root,PASS='
Impostare PLAIN1 come metodo di autenticazione SMTP, eliminare il nome account, utilizzare la password "SUNX": 'PLAIN1,ACCOUNT=,PASS=SUNX'
Impostare PLAIN2 come metodo di autenticazione SMTP, eliminare il nome account e la password: 'PLAIN2,ACCOUNT=,PASS='
Impostare LOGIN come metodo di autenticazione SMTP per l'account "panasonic" e mantenere la password già impostata: 'PLAIN2,ACCOUNT=panasonic'
Impostare CRAM-MD5 come metodo di autenticazione SMTP per il nome account già specidicato e impostare la password "SUNX": 'CRAM,,PASS=SUNX'
Non utilizzare un metodo di autenticazione SMTP, non utilizzare un account, non modificare la password: 'NOUSE'
Mantenere il metodo di autenticazione SMTP, l'account e la password 'KEEP'
Impostare i parametri di comunicazione opzionali come richiesto. Si ricorda che la lingua di default dell'e-mail è impostata sul Giapponese.
Dimensione massima dell'e-mail
Parola chiave: MAILSIZE
Sintassi: 'MAILSIZE=xxx'
(default: 100)
Intervallo: 1–10240KB
Timeout connessione
Parola chiave: TOUT
Sintassi: 'TOUT=xxx'
(default: 60 secondi)
Intervallo: 30–300 secondi
Numero di tentativi
Parola chiave: RTRY
Sintassi: 'RTRY=x'
(default: 3 volte)
Intervallo: 0–3
Intervallo tentativi
Parola chiave: RTTM
Sintassi: 'RTTM=xxxxx'
(default: 600 secondi)
Intervallo: 10–86400 secondi
Il valore può essere specificato per 10 secondi. È arrotondato per difetto a 10.
Esempio: Quando si specificano 38 secondi, vengono impostati 30 secondi.
Lingua da utilizzare per l'oggetto e il testo dell'e-mail.
Parole chiave:
JPN: Giapponese (default)
ENG: Inglese
INITIAL
: Resets connection timeout, number of retries, and the retry interval to the default settings.
KEEP
: Mantiene le impostazioni di comunicazione attuali.
Esempi:
Imposta la dimensione massima dell'e-mail: 1000KB, timeout di connessione: 30 secondi, numero di tentativi: 2, intervallo tentativi: 500 secondi, lingua dell'e-mail: Giapponese: 'MAILSIZE=1000,TOUT=30,RTRY=2,RTTM=500,JPN'
Imposta la dimensione massima dell'e-mail: 10000KB, timeout di connessione: 270 secondi, nessun tentativo, intervallo tentativi: 4900 secondi, lingua dell'e-mail: Inglese: 'MAILSIZE=10000,TOUT=270,RTRY=0,RTTM=4900,ENG'
Imposta la dimensione massima dell'e-mail: 500KB, timeout di connessione: 30 secondi, numero di tentativi: 3, intervallo tentativi: 200 secondi, lingua dell'e-mail: non modificare: 'MAILSIZE=500,TOUT=30,RTRY=3,RTTM=200'
Imposta la dimensione massima dell'e-mail: 5000KB, timeout di connessione: non modificare, numero di tentativi: 5, intervallo tentativi: 3000 secondi, lingua dell'e-mail: Inglese: 'MAILSIZE=5000,,RTRY=5,RTTM=3000,ENG'
Resetta alle impostazioni di default (dimensione massima dell'e-mail: 100KB, timeout di connessione: 60 secondi, numero di tentativi: 3, intervallo tentativi: 600 secondi, lingua di default dell'e-mail: Giapponese): 'INITIAL'
Mantieni tutte le impostazioni attuali: 'KEEP'
Uscita
Passa a TRUE nelle seguenti condizioni:
se un timeout della connessione viene superato
se un indirizzo IP non è valido
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
Separa tutte le voci di parole chiave con una virgola, p.es. 'NAME=abcd,FROM=sender@server.com'
Il numero di caratteri per dati stringa non deve superare 256.
Questa istruzione non è disponibile nei programmi di interrupt.
I caratteri maiuscoli e minuscoli possono essere utilizzati per specificare le parole chiave. Tuttavia l'oggetto, il testo dell'e-mail e il nome del file dell'allegato fanno distinzione tra maiuscole e minuscole.
Prima di eseguire l'istruzione, assicurarsi che sys_bIsEthernetInitializing sia FALSE. sys_bIsEthernetInitializing passa a TRUE quando l'istruzione viene eseguita. Se si esegue l'istruzione mentresys_bIsEthernetInitializing è TRUE, si verifica un errore.
L'istruzione può essere eseguita solo se il flag di richiesta di trasferimento per l'impostazione di trasferimento specificata o il numero nLogID specificato è FALSE. Quando la richiesta di trasferimento è TRUE, si verifica un errore di funzionamento.
Quando questa istruzione è stata eseguita correttamente, le variabili di sistema sys_bIsCarry e sys_iEthernetConnectionErrorCode vengono resettate.
Quando si verifica un errore, controllare la variabile di sistema sys_iEthernetConnectionErrorCode per verificare il numero di codice di errore.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se la stessa parola chiave è specificata più di una volta
Se il flag di richiesta di trasmissione e-mail per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto".
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se l'istruzione viene eseguita in un programma di interrupt
se il numero di caratteri per dati stringa supera 256.
se un valore specificato per un parametro è fuori dall'intervallo utilizzabile.
se la stessa parola chiave è specificata più di una volta
Se il flag di richiesta di trasmissione e-mail per l'impostazione di trasferimento specificata è "TRUE: Trasferimento richiesto".
Se il flag di richiesta di trasferimento per un numero nLogID specificato è TRUE, p.es. se sys_blsLog0DataRecordingActive è TRUE.
se l'istruzione viene eseguita in un programma di interrupt
se il numero di caratteri per dati stringa supera 256.
se l'istruzione viene eseguita con un indirizzo IP non corretto, sys_iEthernetConnectionErrorCode viene impostato su "1: Viene specificato un indirizzo IP non corretto"
se l'istruzione viene eseguita durante l'inizializzazione di Ethernet, sys_iEthernetConnectionErrorCode viene impostato su "11: Ethernet viene inizializzato".
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
VAR
bError: BOOL:=FALSE;
bSetConnection: BOOL:=FALSE;
END_VAR
Se bSetConnection passa da FALSE a TRUE e sys_bIsEthernetInitializing è impostato su FALSE, l'istruzione viene eseguita.
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;