| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
| |
forwarding message to the outer container. Fixes and closes SF bug
#585833.
|
| |
|
|
|
| |
link so you don't have to go back to the admin page if more helds have
shown up.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before applying this patch, do this to reproduce the bug:
- Set the language to something other than English (French makes a
good choice)
- Make sure the list has a prefix of some ascii text
- Send a message to the list with the following Subject:
=?iso-8859-1?Q?=E9?=
Bingo, double encoding. This fixes the problem by making sure the
prefix + original subject gets properly chunk encoded in a Header
instance. There's a bit of extra goo in here that won't be necessary
when I release email 2.2. See the comments for details.
G'morning Fil! :)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(forward by JC Lawrence):
Nick gave the example,
| > Reply-to: listname@listdomain, posting-user@example.com
JCL commented,
| Having [mutiple addresses in] Reply-To is a Good ... and Damned Useful
[Thing].
It seems to me, though, that the list membership would be better
served with this form:
Reply-To: postauthor@its.domain, listname@listserver.domain
because the MUAs with which I'm familiar make it anywhere from
slightly easier to far easier for the respondent to remove
addresses from the right of the reply's To: than from the left.
Also clean up some Pychecker nits.
|
| | |
|
| | |
|
| |
|
|
|
| |
the default type if there is no Content-Type: header. Also, recognize
that message/rfc822 parts are ismultipart() containers.
|
| |
|
|
|
| |
Mailbox.__init__(): We can simply pass email.message_from_file() as
the factory.
|
| |
|
|
|
|
|
|
| |
components, and add --with switches for easier overrides.
Now, both default host names are chosen with socket.getfqdn(), and
--with-mailhost overrides the email hostname part, while
--with-urlhost overrides the url hostname part.
|
| |
|
|
|
|
|
|
|
| |
wrapping each message inside the multipart/digest in a MIMEMessage
instance. We also no longer need to initialize the mimedigest
instance's payload to the empty list.
Also, when sending the digests, be sure to include isdigest=1 in the
metadata, otherwise SMTPDirect will try to tack on another footer.
|
| |
|
|
| |
instance.
|
| | |
|
| |
|
|
|
|
| |
address is already a member and don't make the address change in that
case. However, if the old address is still a member, we'll just
delete it.
|
| |
|
|
|
|
|
|
| |
is already a member of the current list. If the change is requested
globally, we'll output a warning message but still allow the change to
go through (we'll catch already-a-member situations elsewhere).
If the request is not global, then we'll refuse to make the change.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
confirmation string was invalid" messages. The problem was if the
responder left the confirmation string in the Subject: and also copied
it to the body, the second processing of the confirmation would find
no cookie.
So now we always stop after processing the first confirmation command
(yes, that means no other commands in the message will be processed,
which is fine). We also trim the unprocessed commands in the results
to not include identical confirmation strings -- otherwise they'll see
their confirmation as unprocessed.
|
| |
|
|
| |
no limit.
|
| |
|
|
| |
(probably useful only for debugging).
|
| |
|
|
| |
display when only one language is available.
|
| |
|
|
| |
Mick.
|
| |
|
|
| |
Tollef Fog Heen, with a friendly reminder from Marc MERLIN.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to the invitation notification. Also, set an `invitation' attribute
on the UserDesc record stored in the pending database. This is a hack
so that ProcessConfirmation() can figure out if the subscription
request was an invitation or not (easier than adding an INVITATION
type to the Pending module).
ApprovedAddMember(): Option text argument for passing in prepended
text for subscription notifications.
ProcessConfirmation(): If the SUBSCRIPTION action was an invitation
(based on the magic existance of the `invitation' attribute on the
UserDesc record), don't do additional approvals. If the user was
invited, we /know/ the admin had to approve of that!
|
| |
|
|
| |
to the subscription notification.
|
| |
|
|
|
| |
subscribe page so that the admin can add a custom message to be
prepended to the welcome/invite notification.
|
| |
|
|
| |
Simone Piunno.
|
| |
|
|
|
|
| |
send_response(): Check whether the sender has reached their
autoresponse limit before sending the results of the command. This
may not be the right time to do that check.
|
| |
|
|
|
|
| |
process(): Before sending the sender a notification message, check the
X-Ack: and Precedence: headers, and also see if this sender has
reached their auto-response limit.
|
| |
|
|
| |
missing.
|
| |
|
|
| |
date in (year, month, day) format.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
dictionary mapping sender addresses (they don't have to be members) to
a 2-tuple of information (date, count). date is a 3-tuple of
(year, month, day) and count is the number of auto-responses sent to
the sender today.
autorespondToSender(): This method is called whenever we're about to
send a response to a -request message, or a hold notification. It
returns 1 if the caller should send a normal autoresponse, and 0
otherwise. When we've just exceeded the maximum number of
autoresponses, we send a message indicating that no more responses
will be sent today (instead of the normal autoresponse).
|
| |
|
|
|
|
| |
on the number of -request and posting-hold responses any one list will
send to any one recipient in a single day. This is to stop mail loops
with email robots. Default this to 10.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
other than due to excessive bounces. Specifically,
REASONS: sentence fragments for disable reasons (hopefully these can
be translated).
registerBounce(): The calculation of now and lastbounce was broken
because the dst flag should have been set to -1 to let the library
pick the right daylight savings time flag value. Use a new helper
routine Utils.midnight() to calculate this.
sendNextNotification(): Generalize a bit to handle notifications for
other reasons. The ApprovedDeleteMember() message is now 'disabled
address', and the syslog() message is generalized a bit too.
Also, stick the reason sentence fragment into the modified
disabled.txt template. TRANSLATORS TAKE NOTE!
|
| |
|
|
|
|
|
| |
be lists when this method is called from config_list. If so, just
return the value unmodified.
Also, add the Topics widget type so config_list doesn't bomb out.
|
| | |
|
| |
|
|
| |
are subject to this variable as well.
|
| |
|
|
| |
Replybot.
|
| |
|
|
| |
emails will be autoresponded. Closes bug #558909.
|
| | |
|
| | |
|
| |
|
|
|
| |
Also, use Utils.websafe() consistently throughout, instead of the
inconsistent calls to cgi.escape().
|
| |
|
|
|
|
|
|
| |
messages.
prefix_subject(): Since email.Header.Header.encode() already knows how
to split long header lines, use this instead of our own attempts.
This makes long subject lines much cleaner.
|
| |
|
|
|
| |
Precedence: header, add Precedence: bulk since these are typically
internally crafted messages destined for a single address.
|
| |
|
|
|
|
| |
2-tuple with an empty realname item; second, we should extract all
matching headers with Message.get_all() to make sure we don't miss
anything (even though RFC 2822 says those should only appear once).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
list. Chuq gives us the relevant info from the sendmail docs:
When the name is found in a "Precedence:" field, the
message class is set to num. Higher numbers mean
higher precedence. Numbers less than zero have the
special property that if an error occurs during pro-
cessing the body of the message will not be returned;
this is expected to be used for "bulk" mail such as
through mailing lists. The default precedence is
zero. For example, our list of precedences is:
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
People writing mailing list exploders are encouraged
to use "Precedence: list". Older versions of sendmail
(which discarded all error returns for negative prece-
dences) didn't recognize this name, giving it a
default precedence of zero. This allows list main-
tainers to see error returns on both old and new ver-
sions of sendmail.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
list. Chuq gives us the relevant info from the sendmail docs:
When the name is found in a "Precedence:" field, the
message class is set to num. Higher numbers mean
higher precedence. Numbers less than zero have the
special property that if an error occurs during pro-
cessing the body of the message will not be returned;
this is expected to be used for "bulk" mail such as
through mailing lists. The default precedence is
zero. For example, our list of precedences is:
Pfirst-class=0
Pspecial-delivery=100
Plist=-30
Pbulk=-60
Pjunk=-100
People writing mailing list exploders are encouraged
to use "Precedence: list". Older versions of sendmail
(which discarded all error returns for negative prece-
dences) didn't recognize this name, giving it a
default precedence of zero. This allows list main-
tainers to see error returns on both old and new ver-
sions of sendmail.
|
| |
|
|
|
| |
environment. This closes a cross-site scripting hole in the admin
login pages.
|
| |
|
|
| |
"bulk", we now include "junk" and "list" as well.
|
| |
|
|
| |
Also, added support for Estonian.
|
| | |
|