At 12:13 PM 7/19/02 -0400, Chris Edwards wrote:
>any suggestions on how to write directly to sendmail's queue?

You are supposed to send emails through a mail delivery program. On Unix/Linux you 
should submit emails through /usr/ucb/mail or even directly through sendmail.

But if for some reason you REALLY want to drop files directly into the queue you can 
simply create the files you need directly in /var/spool/mqueue (or wherever your 
system has the mail queue).

All queue files have the name xfAAA99999 where AAA99999 is the id for this message and 
the x is a type. The first letter of the id encodes the hour of the day that the 
message was received by the system (with A being the hour between midnight and 
1:00AM). All files with the same id collectively define one message. 
The types are: 

d 
The data file. The message body (excluding the header) is kept in this file. 
q 
The queue control file. This file contains the information necessary to process the 
job. 
t 
A temporary file. These are an image of the qf file when it is being rebuilt. It 
should be renamed to a qf file very quickly. 
x 
A transcript file, existing during the life of a session showing everything that 
happens during that session. 

To create a new message in the queue you need to first create the 'd' file, then the 
'q' file. You do not need to create the others, they are used by sendmail during 
processing.

The qf file is structured as a series of lines each beginning with a code letter. The 
lines are as follows: 
V 
The version number of the queue file format, used to allow new sendmail binaries to 
read queue files created by older versions. Defaults to version zero. Must be the 
first line of the file if present. 
H 
A header definition. There may be any number of these lines. The order is important: 
they represent the order in the final message. These use the same syntax as header 
definitions in the configuration file. 
C 
The controlling address. The syntax is localuser:aliasname. Recipient addresses 
following this line will be flagged so that deliveries will be run as the localuser (a 
user name from the /etc/passwd file); aliasname is the name of the alias that expanded 
to this address (used for printing messages). 
Q 
The ``original recipient'', specified by the ORCPT= field in an ESMTP transaction. 
Used exclusively for Delivery Status Notifications. It applies only to the immediately 
following `R' line. 
R 
A recipient address. This will normally be completely aliased, but is actually 
realiased when the job is processed. There will be one line for each recipient. 
Version 1 qf files also include a leading colon-terminated list of flags, which can be 
`S' to return a message on successful final delivery, `F' to return a message on 
failure, `D' to return a message if the message is delayed, `B' to indicate that the 
body should be returned, `N' to suppress returning the body, and `P' to declare this 
as a ``primary'' (command line or SMTP-session) address. 
S 
The sender address. There may only be one of these lines. 
T 
The job creation time. This is used to compute when to time out the job. 
P 
The current message priority. This is used to order the queue. Higher numbers mean 
lower priorities. The priority changes as the message sits in the queue. The initial 
priority depends on the message class and the size of the message. 
M 
A message. This line is printed by the mailq command, and is generally used to store 
status information. It can contain any text. 
F 
Flag bits, represented as one letter per flag. Defined flag bits are r indicating that 
this is a response message and w indicating that a warning message has been sent 
announcing that the mail has been delayed. 
N 
The total number of delivery attempts. 
K 
The time (as seconds since January 1, 1970) of the last delivery attempt. 
I 
The i-number of the data file; this can be used to recover your mail queue after a 
disastrous disk crash. 
$ 
A macro definition. The values of certain macros (as of this writing, only $r and $s) 
are passed through to the queue run phase. 
B 
The body type. The remainder of the line is a text string defining the body type. If 
this field is missing, the body type is assumed to be undefined and no special 
processing is attempted. Legal values are 7BIT and 8BITMIME. 
O 
The original MTS value (from the ESMTP transaction). For Deliver Status Notifications 
only. 
Z 
The original envelope id (from the ESMTP transaction). For Deliver Status 
Notifications only. 

As an example, the following is a queue file sent to [EMAIL PROTECTED] and 
[EMAIL PROTECTED]: 

P835771
T404261372
Seric
Ceric:[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]
H?P?return-path: <[EMAIL PROTECTED]>
Hreceived: by vangogh.CS.Berkeley.EDU (5.108/2.7) id AAA06703;
Fri, 17 Jul 92 00:28:55 -0700
Hreceived: from mail.CS.Berkeley.EDU by vangogh.CS.Berkeley.EDU (5.108/2.7)
id AAA06698; Fri, 17 Jul 92 00:28:54 -0700
Hreceived: from [128.32.31.21] by mail.CS.Berkeley.EDU (5.96/2.5)
id AA22777; Fri, 17 Jul 92 03:29:14 -0400
Hreceived: by foo.bar.baz.de (5.57/Ultrix3.0-C)
id AA22757; Fri, 17 Jul 92 09:31:25 GMT
H?F?from: [EMAIL PROTECTED] (Eric Allman)
H?x?full-name: Eric Allman
Hmessage-id: <[EMAIL PROTECTED]>
HTo: [EMAIL PROTECTED]
Hsubject: this is an example message

This shows the person who sent the message, the submission time (in seconds since 
January 1, 1970), the message priority, the message class, the recipients, and the 
headers for the message. 



______________________________________________________________________
Get the mailserver that powers this list at http://www.coolfusion.com
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to