[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

REMAIL: send-mail.c (alpha version)



>I would like to build a remailer too, and I wanted to try and
>understand how Hal's remailer works first. Also, do you know if
>there is code available for any other remailers in shell script
>or C?
>
>Thanks a lot,
>Avi Rubin
>
> -----------
>
>Chael Hall wrote a remailer in C.  He should be willing to share his
>code.  Ask on the list.
>
>Eric

     The code that is included here was not intended for release yet.
There are several bugs and oversights.  I have been going through a
complete redesign of Send-Mail (SM), but haven't coded any of it yet.
What is here is the old source patched to do most of what I want it to
do.  You can see that there is support for a file processor and indeed
PGP works okay with it, but I don't *like* the way they work together,
so I do not recommend using the processor feature.  In the redesigned
version, the remailer operator can setup as many file processors as
he/she wants.  A file can be processes several times before it gets
sent.

     Most of the important stuff that would differ can be set in the
.send-mailrc file (which should be in the user's home directory, it
can be linked to another place) or is defined at the beginning.  Let
me know what you think; I am open to suggestions.

Chael Hall

begin 600 send-mail.tar.Z
M'YV0<\JX(=.B39@T;%X 6,BPH<.'$"-*G$BQ8D48-&#<@ %C(<<8-T)ZY AC
MQHV1)%-R! "CQ@R7,5RZG,$R1LP9-@" J&&QI\^?0(-"!$&4:$< ;M[<05-&
M3AFA#\_4*3.'#M2K#$'$T-D1!-:O8,.*'5LQX,""!Q,V";.FC!F$3\G*!1N#
MHXV5+&& %)F7HTF4*E_2;"DXIHP;+FO&>"F#Z]S'D"&:#$FY<N3+%+4Z]HJY
ML^?/%4> &/.FC<&!(-BD<5,&Q!LX=-*\<3,'A)DW<D ,&:)@B!$F08Y,2= #
M1(LS"D23-AT&M6K6KF'+IFT;-P@F1(BBH,,T]>JV<EB 6&WG35LR(,3DT3TD
MA0+LOX,/+]Z"#1OC;/(H4#"GC0X09A%D$$(NO*%  F., 0()>_@&G'!]&/?&
M@D  *)" :16XX![P/3A%'_N-P489S>EPH!QM&&<&"&$46 <=H^'6F@H%[A<@
M6@2^\=^- [+APA@*@";DD$06:219/*;U@E-AD-%&&2Z0\<881V)6%PQW'?41
M98#]U5=*,<B@$4LRS7 33(KI=1((1U7IID-%&?4F9IJQJ=.<>.8I49P@9/%&
M'2#<@=!]<,CQAAAAB)$?"&B$84=K=$PX1J-NG %I=W"$P1T(D0+(QI1AW(?"
M:B"X<)L<=X0A!QDIL#B0 IT&V",(H[I1:I((R3%&"BX0Y2>@8S1GVVKH<5=&
MBNJ!4,<<JYW!:7=SY%'5L<.^^B)":="1AXD*\/D6:B\8YT883X+ PULCCOND
M#\85NAH=^_'YZVC"+@<'7!:>-:L:R\*8K+;W5@J"" :U)<)XMG*71FUDI.'4
M&)'*D8<+"B0!HZ#VC<8D'9>VAFYK(O3GPL$@2"$0N9=JRNF$(5^((QL'-X=>
M'G^>X!2+]O%7!AV]@I#$BC0#VNBCKJY7Z*$CME&;=7%,5=5T<X@'QXAA!!2H
M'-FV5JZF"B2U5%-E "'&''6T,,8<+HQ=APMED &H=1SMAD003# A-MEVC)$V
MV6R[W7,2(!3J5E//>NQP50HT2893<Z =;YQ4()'$%"! (<431T@11!,^4^[$
M$U247$001&0!@A%/2 $"$9-3(4420E1!11)/.-%G$52(!P43HT]1! A+%%$$
M%#Z'3L43"F3Q1!52^,Z$$3U/<6'1KJ(7ZGUMO-'P6\'&-EMMG6X-H[$LBO$&
MT66\S"(9BU/E>&^-EG$?$M?OI^?]^.>O__YXXIJ0_S_BWU6NE*61[.4D7_*2
M2EJBIHX0!B8UD($-9+ 5O8!$!C2QDP"%-)G*6&:#0*E35T!(PLXD9S4BJ@,9
M6L.#JC3L#2Y @P].Z(84KM!<$,L#'* D0QK:D(71FL,+8O.D&,XP.2O\5FO$
M4(8SK(8I32*<"'2@ RZX@61\RB((7J "$ BAB:MQ0[-<LR(HKC W5<&:P+2H
M@A<@T2VK66(=S, L/;1&!C6P@1;WF$4N@F *:; C&=,S1S,0[E2<*@,>8)3&
M9M6&*&U\HQ)7]A;YD2$& W-*TZA"AQ8XI4?-:D&D=""";O'QE*CDHQ^A@#6#
M2 P$GTR+%(]WL$JR 3U9C.0(DAA'2J;!DC(8&!Y:T)S9B%)'6-RC'Z5'FH&H
M:CVQA$MN1$#+85F23[KD)70N9,:F8%($5DQF*K?815:FP97K<=D;S-"";J*1
M#FIT%C;=N$LX;G,@[@SF%*MXQ7$299EE:"89G@D"=;+3G0""YQB+DDU[MF8-
[email protected]%K0@C2<(2E.H6@X5=E%*B@21F$P \=RH[#:2'0\M;$H1MO&4'IJLS6Z
M&I@+_*<K<9[2CU(8PK!&5!TTNFQ6J6SH))/H%#K400[C8M\[email protected]
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
M[]8%+]!X;_4DO_?*V?7%%/D">G^%WY[53[[email protected]]O/'/O1//MH7_MKKZIM
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
[email protected]*QLTU1[Y; "/<=@E-4!,4EY4M"UR%-!R@P)<=^!A>"@>CH?D
*87EH'IZ'Z.%U!QLT
 
end