Re: [Mimedefang] replace_entire_message() help

2017-11-17 Thread Dianne Skoll
On Fri, 17 Nov 2017 08:34:50 -0800
"Michael Fox"  wrote:

> In other words, if the top-level headers can't be replaced by new
> values in the MIME::Entity->build() method, then why do I still need
> to include them when building the new entity?

Ah, I guess you don't.  But I'd do it anyway just for the sake of sanity
and consistency.  As you point out later, if you attach sub-entities to the
parent entity, they need the headers fully-specified.

Regards,

Dianne.
___
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang


Re: [Mimedefang] replace_entire_message() help

2017-11-17 Thread Michael Fox
> > 1) When building $new_entity, does every field need to be included?
> 
> Yes.


> > 2)  I can't figure out how to replace the Subject header - even with a
> > string literal.  For example, suppose I have the following in
> > filter_end():
> 
> You can't replace top-level headers this way.  You need to use
> action_change_header(...)

Thanks Dianne.

But I guess I'm misunderstanding something fundamental because I don't 
understand how those two answers are not in conflict with each other.

In other words, if the top-level headers can't be replaced by new values in the 
MIME::Entity->build() method, then why do I still need to include them when 
building the new entity?  

Perhaps you meant I need to include all header fields if they are part of a 
body part in a multi-part message?  Again, pardon if my 
nomenclature/phraseology isn't exactly correct. 

Thanks,
Michael



___
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang


Re: [Mimedefang] replace_entire_message() help

2017-11-17 Thread Dianne Skoll
On Fri, 17 Nov 2017 07:46:00 -0800
"Michael Fox"  wrote:

> 1) When building $new_entity, does every field need to be included?

Yes.

> Or will extra info be copied from the existing $entity?

No, unless you arrange for that in your code.

> 2)  I can't figure out how to replace the Subject header - even with a
> string literal.  For example, suppose I have the following in
> filter_end():

You can't replace top-level headers this way.  You need to use
action_change_header(...)

> What comes through the filter (received in the user's mailbox) is a
> text/plain message with the original subject and the replacement
> body.  What am I doing wrong?

See above!

Regards,

Dianne.
___
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang


[Mimedefang] replace_entire_message() help

2017-11-17 Thread Michael Fox
I need some help with the replace_entire_message() function.  Apologies in
advance if the problem is my novice perl knowledge.

Assume $entity is the existing entity and $new_entity is the newly built
entity.

1) When building $new_entity, does every field need to be included?  Or will
extra info be copied from the existing $entity?  For example, suppose I have
the following in filter_end():

$new_entity = MIME::Entity->build(
Subject => $foo,
Data=> $bar,
);

Do I also need to specifically set Bcc, Cc, Date, From, Message-ID, etc.
equal to the corresponding $entity values?  Or will the extra fields be
copied from $entity?


2)  I can't figure out how to replace the Subject header - even with a
string literal.  For example, suppose I have the following in filter_end():

$new_subject = 'Replacement Subject';
$new_body= 'Replacement Body';
$new_entity = MIME::Entity->build(
Type=> 'text/plain',
Subject => $new_subject,
Data=> $new_body,
);
replace_entire_message($new_entity);

What comes through the filter (received in the user's mailbox) is a
text/plain message with the original subject and the replacement body.  What
am I doing wrong?

Thanks,
Michael



___
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID.  You may ignore it.

Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list MIMEDefang@lists.roaringpenguin.com
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang