כתבתי פעם תכנית אשר שולחת מכתבים אל לקוחות בהתאם לתנאי מסוים. לא אציג את החלק הזה כי הוא ספציפי לצרכים שלי, אבל הוא מכניס נתונים לתוך מסך MAILBOX (מבחינת התכנית, יש ערכים "טובים" בטבלה GENERALLOAD). לאחר מכן, הקוד שמופיע למטה שולח את המכתבים
LINK MAILBOX TO :$.MBX;
ERRMSG 1 WHERE :RETVAL <= 0;
DECLARE C2 CURSOR FOR
SELECT ATOI (KEY1), INT2, REAL1
FROM GENERALLOAD
WHERE RECORDTYPE = '1'
AND LOADED = 'Y';
OPEN C2;
GOTO 300 WHERE :RETVAL <= 0;
LABEL 100;
FETCH C2 INTO :MB, :PROJ, :PRICE;
GOTO 200 WHERE :RETVAL <= 0;
DELETE FROM MAILBOX;
INSERT INTO MAILBOX
SELECT * FROM MAILBOX ORIG
WHERE MAILBOX = :MB;
EXECUTE SENDMAIL :$.MBX, :XMSG; /* send the letter! */
LOOP 100;
LABEL 200;
CLOSE C2;
LABEL 300;
הםרמטר הראשון לתכנית הוא מספר המזהה של המכתב ב-MAILBOX והפרמטר השני מלל במקרה ויש שגיאה.
כתבתי פעם בלוג על SENDMAIL – יש הסבר באנגלית איך התכנית עובדת. ניתן לקרוא כאן:
Sending complex emails via Priority