Scrip to detect attached zip files

Hi,

I need to detect if a zip file has been attached to a ticket at
creation time and also at ‘comment’ or ‘correspond’ time.

My idea to solve this is to extract the attachments and then parse
the content.

I think the best route for this would be:

TransactionObj->Attachments->Next …
ContentAsMIME(Children=>1)

Since MIME entities can themselves contain other entities,
I think I’m going to need a recursive function …

Basically what I’d like is a few words of advice. I think I can
come up with a solution but perhaps there’s a simpler path I’m overlooking
or I’m not aware of.

​Thanks in advance​,

Regards,

Hugo Escobar

http://www.associationfinancialservices.com/

4770 Biscayne Blvd, Ste 700
Miami, FL 33137

main: 305.677.0022
support: 305.921.4620
email: hescobar@afslc.com

Follow us on Facebook and Linked-In
http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864
http://www.linkedin.com/companies/1006276

NOTICE: This email and any attachment to this email may contain
confidential information. If you are not the intended recipient, you must
not review, retransmit, convert to hard copy, photocopy, use or disseminate
this email or any attachments to it. If you have received this email in
error, please notify us immediately by return email and delete this
message. Please note that if this email contains a forwarded message or is
a reply to a prior message, some or all of the contents of this message or
any attachments may not have been produced by our firm. As our firm may be
deemed a debt collector, if your payment is in default, we may be
attempting to collect a debt on behalf of the association, and any
information obtained may be used for that purpose.

Update:
The following lines work exactly as I expect:

use Data::Dumper;

my $tobj = $self->TransactionObj;
my $atts = $tobj->Attachments;

my $attachment = $self->TransactionObj->Attachments->Next;
if (!$attachment) {
return 0;
}

my $content = Dumper($attachment->ContentAsMIME(Children=>1));
if ($content=~/ name=".*?.zip"/i) {
$RT::Logger->info(“message has a zip file”);
} else {
$RT::Logger->info(“no zip file”);
}
return 1;

However, this doesn’t look like a good solution

In an attempt to use the API directly, I tried the following:

https://docs.bestpractical.com/rt/4.2.12/RT/Attachment.html#Filename
https://docs.bestpractical.com/rt/4.2.12/RT/Transaction.html#Attachments

while(my $attachment = $self->TransactionObj->Attachments->Next) {
$RT::Logger->info($attachment->FileName);
}

But got this in the log file:

[Wed Mar 16 16:47:07 2016] [error]: Scrip 34 Commit failed:
RT::Attachment::FileName Unimplemented in RT::Action::UserDefined. ((eval
652) line 2)

​any ideas?

Thanks in advance​

​PS:
our installation:
Centos 6.6/MySql/Apache+mod_perl
RT 4.2​.9On Tue, Mar 15, 2016 at 7:04 PM, Hugo Escobar hescobar@afslc.com wrote:

Hi,

I need to detect if a zip file has been attached to a ticket at
creation time and also at ‘comment’ or ‘correspond’ time.

My idea to solve this is to extract the attachments and then parse
the content.

I think the best route for this would be:

TransactionObj->Attachments->Next …
ContentAsMIME(Children=>1)

Since MIME entities can themselves contain other entities,
I think I’m going to need a recursive function …

Basically what I’d like is a few words of advice. I think I can
come up with a solution but perhaps there’s a simpler path I’m overlooking
or I’m not aware of.

​Thanks in advance​,

Regards,

Hugo Escobar

http://www.associationfinancialservices.com/

4770 Biscayne Blvd, Ste 700
Miami, FL 33137

main: 305.677.0022
support: 305.921.4620
email: hescobar@afslc.com

Follow us on Facebook and Linked-In
http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864
http://www.linkedin.com/companies/1006276

NOTICE: This email and any attachment to this email may contain
confidential information. If you are not the intended recipient, you must
not review, retransmit, convert to hard copy, photocopy, use or disseminate
this email or any attachments to it. If you have received this email in
error, please notify us immediately by return email and delete this
message. Please note that if this email contains a forwarded message or is
a reply to a prior message, some or all of the contents of this message or
any attachments may not have been produced by our firm. As our firm may be
deemed a debt collector, if your payment is in default, we may be
attempting to collect a debt on behalf of the association, and any
information obtained may be used for that purpose.

Hi Hugo,

The N in Filename is not capitalized in the docs. Try lowercase?

ttps://docs.bestpractical.com/rt/4.4.0/RT/Attachment.html#Filename

Like so:

while(my $attachment = $self->TransactionObj->Attachments->Next) {
$RT::Logger->info($attachment->Filename);
}On Wed, Mar 16, 2016 at 1:01 PM, Hugo Escobar hescobar@afslc.com wrote:

Update:
The following lines work exactly as I expect:

use Data::Dumper;

my $tobj = $self->TransactionObj;
my $atts = $tobj->Attachments;

my $attachment = $self->TransactionObj->Attachments->Next;
if (!$attachment) {
return 0;
}

my $content = Dumper($attachment->ContentAsMIME(Children=>1));
if ($content=~/ name=".*?.zip"/i) {
$RT::Logger->info(“message has a zip file”);
} else {
$RT::Logger->info(“no zip file”);
}
return 1;

However, this doesn’t look like a good solution

In an attempt to use the API directly, I tried the following:

https://docs.bestpractical.com/rt/4.2.12/RT/Attachment.html#Filename
https://docs.bestpractical.com/rt/4.2.12/RT/Transaction.html#Attachments

while(my $attachment = $self->TransactionObj->Attachments->Next) {
$RT::Logger->info($attachment->FileName);
}

But got this in the log file:

[Wed Mar 16 16:47:07 2016] [error]: Scrip 34 Commit failed:
RT::Attachment::FileName Unimplemented in RT::Action::UserDefined. ((eval
652) line 2)

​any ideas?

Thanks in advance​

​PS:
our installation:
Centos 6.6/MySql/Apache+mod_perl
RT 4.2​.9

On Tue, Mar 15, 2016 at 7:04 PM, Hugo Escobar hescobar@afslc.com wrote:

Hi,

I need to detect if a zip file has been attached to a ticket at
creation time and also at ‘comment’ or ‘correspond’ time.

My idea to solve this is to extract the attachments and then parse
the content.

I think the best route for this would be:

TransactionObj->Attachments->Next …
ContentAsMIME(Children=>1)

Since MIME entities can themselves contain other entities,
I think I’m going to need a recursive function …

Basically what I’d like is a few words of advice. I think I can
come up with a solution but perhaps there’s a simpler path I’m
overlooking or I’m not aware of.

​Thanks in advance​,


Regards,

Hugo Escobar

http://www.associationfinancialservices.com/

4770 Biscayne Blvd, Ste 700
Miami, FL 33137

main: 305.677.0022
support: 305.921.4620
email: hescobar@afslc.com

Follow us on Facebook and Linked-In
http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864
http://www.linkedin.com/companies/1006276

NOTICE: This email and any attachment to this email may contain
confidential information. If you are not the intended recipient, you must
not review, retransmit, convert to hard copy, photocopy, use or disseminate
this email or any attachments to it. If you have received this email in
error, please notify us immediately by return email and delete this
message. Please note that if this email contains a forwarded message or is
a reply to a prior message, some or all of the contents of this message or
any attachments may not have been produced by our firm. As our firm may
be deemed a debt collector, if your payment is in default, we may be
attempting to collect a debt on behalf of the association, and any
information obtained may be used for that purpose.


RT 4.4 and RTIR Training Sessions https://bestpractical.com/training

  • Washington DC - May 23 & 24, 2016

Jannae Jacks
Senior Network Security Analyst, Technology Security Services
New York University, Information Technology
726 Broadway, 2nd Floor, New York, NY 10003
http://www.nyu.edu

p: (212) 992.7444 | m: (901) 229.3225

Thanks Jannae, it works like a charm!On Wed, Mar 16, 2016 at 10:11 PM, Jannae Jacks jannae@nyu.edu wrote:

Hi Hugo,

The N in Filename is not capitalized in the docs. Try lowercase?

ttps://docs.bestpractical.com/rt/4.4.0/RT/Attachment.html#Filename

Like so:

while(my $attachment = $self->TransactionObj->Attachments->Next) {
$RT::Logger->info($attachment->Filename);
}

On Wed, Mar 16, 2016 at 1:01 PM, Hugo Escobar hescobar@afslc.com wrote:

Update:
The following lines work exactly as I expect:

use Data::Dumper;

my $tobj = $self->TransactionObj;
my $atts = $tobj->Attachments;

my $attachment = $self->TransactionObj->Attachments->Next;
if (!$attachment) {
return 0;
}

my $content = Dumper($attachment->ContentAsMIME(Children=>1));
if ($content=~/ name=".*?.zip"/i) {
$RT::Logger->info(“message has a zip file”);
} else {
$RT::Logger->info(“no zip file”);
}
return 1;

However, this doesn’t look like a good solution

In an attempt to use the API directly, I tried the following:

https://docs.bestpractical.com/rt/4.2.12/RT/Attachment.html#Filename
https://docs.bestpractical.com/rt/4.2.12/RT/Transaction.html#Attachments

while(my $attachment = $self->TransactionObj->Attachments->Next) {
$RT::Logger->info($attachment->FileName);
}

But got this in the log file:

[Wed Mar 16 16:47:07 2016] [error]: Scrip 34 Commit failed:
RT::Attachment::FileName Unimplemented in RT::Action::UserDefined. ((eval
652) line 2)

​any ideas?

Thanks in advance​

​PS:
our installation:
Centos 6.6/MySql/Apache+mod_perl
RT 4.2​.9

On Tue, Mar 15, 2016 at 7:04 PM, Hugo Escobar hescobar@afslc.com wrote:

Hi,

I need to detect if a zip file has been attached to a ticket at
creation time and also at ‘comment’ or ‘correspond’ time.

My idea to solve this is to extract the attachments and then parse
the content.

I think the best route for this would be:

TransactionObj->Attachments->Next …
ContentAsMIME(Children=>1)

Since MIME entities can themselves contain other entities,
I think I’m going to need a recursive function …

Basically what I’d like is a few words of advice. I think I can
come up with a solution but perhaps there’s a simpler path I’m
overlooking or I’m not aware of.

​Thanks in advance​,


Regards,

Hugo Escobar

http://www.associationfinancialservices.com/

4770 Biscayne Blvd, Ste 700
Miami, FL 33137

main: 305.677.0022
support: 305.921.4620
email: hescobar@afslc.com

Follow us on Facebook and Linked-In
http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864
http://www.linkedin.com/companies/1006276

NOTICE: This email and any attachment to this email may contain
confidential information. If you are not the intended recipient, you must
not review, retransmit, convert to hard copy, photocopy, use or disseminate
this email or any attachments to it. If you have received this email in
error, please notify us immediately by return email and delete this
message. Please note that if this email contains a forwarded message or is
a reply to a prior message, some or all of the contents of this message or
any attachments may not have been produced by our firm. As our firm may
be deemed a debt collector, if your payment is in default, we may be
attempting to collect a debt on behalf of the association, and any
information obtained may be used for that purpose.


RT 4.4 and RTIR Training Sessions https://bestpractical.com/training

  • Washington DC - May 23 & 24, 2016


Jannae Jacks
Senior Network Security Analyst, Technology Security Services
New York University, Information Technology
726 Broadway, 2nd Floor, New York, NY 10003
http://www.nyu.edu

p: (212) 992.7444 | m: (901) 229.3225


RT 4.4 and RTIR Training Sessions https://bestpractical.com/training

  • Washington DC - May 23 & 24, 2016

Regards,

Hugo Escobar

http://www.associationfinancialservices.com/

4770 Biscayne Blvd, Ste 700
Miami, FL 33137

main: 305.677.0022
support: 305.921.4620
email: hescobar@afslc.com

Follow us on Facebook and Linked-In
http://www.facebook.com/pages/Miami-FL/ASSOCIATION-FINANCIAL/64952991864
http://www.linkedin.com/companies/1006276

NOTICE: This email and any attachment to this email may contain
confidential information. If you are not the intended recipient, you must
not review, retransmit, convert to hard copy, photocopy, use or disseminate
this email or any attachments to it. If you have received this email in
error, please notify us immediately by return email and delete this
message. Please note that if this email contains a forwarded message or is
a reply to a prior message, some or all of the contents of this message or
any attachments may not have been produced by our firm. As our firm may be
deemed a debt collector, if your payment is in default, we may be
attempting to collect a debt on behalf of the association, and any
information obtained may be used for that purpose.