Lines Matching refs:e
31 ** e -- envelope
47 collect_eoh(e, numhdrs, hdrslen)
48 ENVELOPE *e;
61 (void) rscheck("check_eoh", hnum, hsize, e, RSF_UNSTRUCTURED|RSF_COUNT,
62 3, NULL, e->e_id, NULL);
69 collect_doheader(e);
70 return collect_dfopen(e);
81 ** e -- envelope
92 collect_doheader(e)
93 ENVELOPE *e;
100 eatheader(e, true, false);
102 if (GrabTo && e->e_sendqueue == NULL)
109 if (RrtImpliesDsn && hvalue("return-receipt-to", e->e_header) != NULL)
113 for (q = e->e_sendqueue; q != NULL; q = q->q_next)
122 if (hvalue("to", e->e_header) != NULL ||
123 hvalue("cc", e->e_header) != NULL ||
124 hvalue("apparently-to", e->e_header) != NULL)
127 e->e_flags |= EF_DELETE_BCC;
129 else if (hvalue("bcc", e->e_header) == NULL)
147 addheader("Bcc", " ", 0, e, true);
151 addheader("To", "undisclosed-recipients:;", 0, e, true);
157 for (q = e->e_sendqueue; q != NULL; q = q->q_next)
164 addheader(hdr, q->q_paddr, 0, e, true);
178 ** e -- envelope
189 ** e->e_{dfino,dfdev,msgsize,flags} are updated,
194 collect_dfopen(e)
195 ENVELOPE *e;
203 if (!setnewqueue(e))
206 dfname = queuename(e, DATAFL_LETTER);
216 e->e_flags |= EF_NO_BODY_RETN;
223 e->e_dfino = -1;
226 e->e_dfdev = stbuf.st_dev;
227 e->e_dfino = stbuf.st_ino;
229 e->e_flags |= EF_HAS_DF;
247 ** e -- the current envelope.
255 ** - Data file is created and filled, and e->e_dfp is set.
259 ** - e->e_dfp is NULL.
260 ** - e->e_flags & EF_FATALERRS is set.
279 collect(fp, smtpmode, hdrp, e, rsetsize)
283 register ENVELOPE *e;
344 ** the larger picture (e.g., header versus body).
348 e->e_msgsize = 0;
383 e->e_message = NULL;
428 !bitset(EF_NL_NOT_EOL, e->e_flags))
431 !bitset(EF_CRLF_NOT_EOL, e->e_flags))
486 if (c == '\r' && !bitset(EF_CRLF_NOT_EOL, e->e_flags))
492 e->e_flags))
501 if (e->e_msgsize >= 0)
503 e->e_msgsize++;
505 !bitset(EF_TOOBIG, e->e_flags) &&
506 e->e_msgsize > MaxMessageSize)
507 e->e_flags |= EF_TOOBIG;
514 if (!bitset(EF_TOOBIG, e->e_flags))
539 sm_syslog(LOG_NOTICE, e->e_id,
543 e->e_flags |= EF_CLRQUEUE;
544 e->e_status = "5.6.0";
545 usrerrenh(e->e_status,
564 sm_syslog(LOG_NOTICE, e->e_id,
569 e->e_flags |= EF_CLRQUEUE;
570 e->e_status = "5.6.0";
571 usrerrenh(e->e_status,
595 eatfrom(buf, e);
627 e->e_message = NULL;
653 hdrp, e)))
668 df = collect_eoh(e, numhdrs, hdrslen);
670 e->e_flags |= EF_TOOBIG;
675 if ((!bitset(EF_CRLF_NOT_EOL, e->e_flags) &&
677 (!bitset(EF_NL_NOT_EOL, e->e_flags) &&
684 if (!bitset(EF_TOOBIG, e->e_flags))
707 sm_syslog(LOG_WARNING, e->e_id,
719 df = collect_eoh(e, numhdrs, hdrslen);
729 dferror(df, "sm_io_flush||sm_io_error", e);
752 dfile = queuename(e, DATAFL_LETTER);
763 dferror(df, "bfcommit", e);
769 dferror(df, "sm_io_getinfo", e);
776 dferror(df, "fsync", e);
783 dferror(df, "sm_io_close", e);
794 updfs(e, 0, 1, "collect");
816 sm_syslog(LOG_NOTICE, e->e_id,
819 shortenstring(e->e_from.q_paddr, MAXSHORTSTR));
823 shortenstring(e->e_from.q_paddr, MAXSHORTSTR));
827 shortenstring(e->e_from.q_paddr, MAXSHORTSTR));
831 e->e_to = NULL;
832 e->e_flags &= ~EF_FATALERRS;
833 e->e_flags |= EF_CLRQUEUE;
836 for (q = e->e_sendqueue; q != NULL; q = q->q_next)
852 e->e_id, bitset(EF_LOGSENDER, e->e_flags), LogLevel);
853 if (bitset(EF_LOGSENDER, e->e_flags) && LogLevel > 4)
855 logsender(e, e->e_msgid);
856 e->e_flags &= ~EF_LOGSENDER;
860 if (bitset(EF_TOOBIG, e->e_flags))
862 e->e_flags |= EF_NO_BODY_RETN|EF_CLRQUEUE;
863 if (!bitset(EF_FATALERRS, e->e_flags))
865 e->e_status = "5.2.3";
866 usrerrenh(e->e_status,
870 sm_syslog(LOG_NOTICE, e->e_id,
872 e->e_msgsize, MaxMessageSize);
879 e->e_flags |= EF_HAS8BIT;
881 !bitset(EF_IS_MIME, e->e_flags))
883 e->e_status = "5.6.1";
884 usrerrenh(e->e_status, "554 Eight bit data not allowed");
890 if (e->e_bodytype != NULL &&
891 sm_strcasecmp(e->e_bodytype, "8BITMIME") == 0)
892 e->e_bodytype = "7BIT";
895 if (SuperSafe == SAFE_REALLY && !bitset(EF_FATALERRS, e->e_flags))
897 char *dfname = queuename(e, DATAFL_LETTER);
898 if ((e->e_dfp = sm_io_open(SmFtStdio, SM_TIME_DEFAULT, dfname,
908 e->e_dfp = df;
919 e->e_msgpriority = e->e_msgsize
920 - e->e_class * WkClassFact
921 + e->e_nrcpts * WkRecipFact;
922 markstats(e, (ADDRESS *) NULL, STATS_NORMAL);
937 ** e -- the current envelope.
948 dferror(df, msg, e)
951 register ENVELOPE *e;
955 dfname = queuename(e, DATAFL_LETTER);
967 e->e_flags |= EF_NO_BODY_RETN;
989 avail = freediskspace(qid_printqueue(e->e_qgrp, e->e_qdir),
1003 e->e_status = "4.3.1";
1004 usrerrenh(e->e_status, "452 Out of disk space for temp file");
1014 sm_syslog(LOG_ERR, e->e_id,
1026 ** e -- envelope
1051 eatfrom(fm, e)
1053 register ENVELOPE *e;
1102 macdefine(&e->e_macro, A_TEMP, 'a', q);