Příklad odesílání zásilky
Příklad v SQL na serveru:
(funkce pro spolupráci s poštou nevyvolají výjimku - nelze zachytit handlerem)
PROCEDURE OdesliMail();
BEGIN
DECLARE Letter, Err INT;
DECLARE CrLf CHAR(2) DEFAULT Chr(13)+Chr(10);
DECLARE Dopis NCLOB;
SET Letter = 0;
SET Err = InitWBMail('sql602test', NULL);
IF Err = 0 THEN BEGIN
// tělo i věc dopisu jsou s diakritikou
SET dopis = 'Data naměřená dne '||Date2str(Today,1)||Crlf||'---------------------------'||CrLf;
SET Err = LetterCreateW('Naměřená data ('||Date2str(Today,1)||')', dopis, 2+4, Letter);
END;
END IF;
IF Err = 0 THEN
SET Err = LetterAddAddr(Letter,'NTserver@software602.cz','SMTP',FALSE);
END IF;
IF Err = 0 THEN
SET Err = LetterAddFile(Letter, 'c:\temp\data.tdt');
// SET Err = LetterAddFile(Letter, '/var/temp/data.tdt'); // na Linuxu
END IF;
IF Err = 0 THEN
BEGIN
SET Err = LetterSend(Letter);
SET Letter = 0;
END;
END IF;
IF Err <> 0 THEN
BEGIN
CALL Log_write('Chyba při odesílání pošty ' + int2str(Err));
IF Letter <> 0 THEN
CALL LetterCancel(Letter);
END IF;
END;
END IF;
CALL CloseWBMail();
END
Poznámky:
- v praxi asi bude sestavené tělo dopisu vráceno uživatelskou funkcí, zde pro jednoduchost je tělo sestaveno v řetězcové proměnné;
- je-li potřeba změnit adresu odesílatele (obvykle proto, aby šlo odpovídat pomocí Re:), musí se použít dočasný profil a v něm zvolit jinou adresu;