Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
f17e1946
Commit
f17e1946
authored
Dec 27, 2001
by
jani@hynda.mysql.fi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Made new version of mail_to_db.pl
parent
1cef60bf
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
44 additions
and
21 deletions
+44
-21
tests/mail_to_db.pl
tests/mail_to_db.pl
+44
-21
No files found.
tests/mail_to_db.pl
View file @
f17e1946
...
...
@@ -17,7 +17,7 @@ use DBI;
use
Getopt::
Long
;
$|
=
1
;
$VER
=
"
2.
4
";
$VER
=
"
2.
5
";
$opt_help
=
0
;
$opt_version
=
0
;
...
...
@@ -152,19 +152,41 @@ sub main
$dbh
->
disconnect
if
(
!
$opt_test
);
$ignored
=
(
$mail_no_from_f
+
$mail_no_subject_f
+
$mail_no_txt_f
+
$mail_too_big
+
$mail_duplicates
);
print
"
Mails inserted:
\t\t\t
$mail_inserted
\n
";
print
"
Mails ignored:
\t\t\t
$ignored
\n
";
print
"
Mails without
\"
From:
\"
-field:
\t
$mail_no_from_f
\n
";
print
"
Mails without message:
\t\t
$mail_no_txt_f
\n
";
print
"
Mails without subject:
\t\t
$mail_no_subject_f
\n
";
print
"
Too big mails (>
$opt_max_mail_size
):
\t
$mail_too_big
\n
";
print
"
Duplicate mails:
\t\t
$mail_duplicates
\n
";
print
"
Forwarded mails:
\t\t
$mail_forwarded
\n
";
print
"
Total number of mails:
\t\t
";
$mail_too_big
+
$mail_duplicates
+
$mail_fixed
);
print
"
Mails inserted:
\t\t\t\t\t
$mail_inserted
\n\n
";
if
(
$ignored
)
{
print
"
Ignored mails
\n
";
print
"
-------------
\n
";
$mail_no_from_f
?
print
"
Reason: mail without
\"
From:
\"
-field:
\t\t
$mail_no_from_f
\n
"
:
print
"";
$mail_no_txt_f
?
print
"
Reason: mail without message:
\t\t\t
$mail_no_txt_f
\n
"
:
print
"";
$mail_no_subject_f
?
print
"
Reason: mail without subject:
\t\t\t
$mail_no_subject_f
\n
"
:
print
"";
$mail_too_big
?
print
"
Reason: mail too big (over
$opt_max_mail_size
bytes):
\t
$mail_too_big
\n
"
:
print
"";
$mail_duplicates
?
print
"
Reason: duplicate mail, or in db already:
\t
$mail_duplicates
\n
"
:
print
"";
$mail_fixed
?
print
"
Reason: mail was an unsubscribe - mail:
\t\t
$mail_fixed
\n
"
:
print
"";
print
"
";
print
"
=
"
.
"
=
"
x
length
("
$ignored
")
.
"
=
\n
";
print
"
Total number of ignored mails:
\t\t\t
$ignored
\n\n
";
}
print
"
Total number of mails:
\t\t\t\t
";
print
$mail_inserted
+
$ignored
;
print
"
\n
";
print
"
Mails with unsubscribe removed:
\t
$mail_fixed
\n
";
print
"
(OK:
";
print
sprintf
("
%.1f
",
((
$mail_inserted
/
(
$mail_inserted
+
$ignored
))
*
100
));
print
"
% Ignored:
";
print
sprintf
("
%.1f
",
((
$ignored
/
(
$mail_inserted
+
$ignored
))
*
100
));
print
"
%)
\n
";
exit
(
0
);
}
...
...
@@ -269,7 +291,8 @@ sub process_mail_file
$values
{
$type
}
.=
"
\n
"
.
$_
;
$check
--
;
}
elsif
(
/^From .* \d\d:\d\d:\d\d\s\d\d\d\d$/
)
elsif
(
/^From .* \d\d:\d\d:\d\d\s\d\d\d\d$/
||
/^From .* \d\d\d\d\s\d\d:\d\d:\d\d/
)
{
$values
{'
hash
'}
=
checksum
("
$values
{'message'}
");
update_table
(
$dbh
,
$file_name
,
\%
values
);
...
...
@@ -338,26 +361,26 @@ sub date_parser
sub
update_table
{
my
(
$dbh
,
$file_name
,
$values
)
=
@_
;
my
(
$q
,
$tail
,
$message
);
my
(
$q
,
$tail
,
$message
);
if
(
!
defined
(
$values
->
{'
subject
'})
||
!
defined
(
$values
->
{'
to
'}))
{
$mail_no_subject_f
++
;
return
;
# Ignore these
}
$message
=
$values
->
{'
message
'};
$message
=~
s/^\s*//
;
#removes whitespaces from the beginning
$message
=
$values
->
{'
message
'};
$message
=~
s/^\s*//
;
#
removes whitespaces from the beginning
restart:
$message
=~
s/[\s\n>]*$//
;
#removes whitespaces and '>' from the end
$values
->
{'
message
'}
=
$message
;
$message
=~
s/[\s\n>]*$//
;
#
removes whitespaces and '>' from the end
$values
->
{'
message
'}
=
$message
;
foreach
$tail
(
@remove_tail
)
{
$message
=~
s/$tail//
;
}
if
(
$message
ne
$values
->
{'
message
'})
{
$message
=~
s/\s*$//
;
#removes whitespaces from the end
$message
=~
s/\s*$//
;
#
removes whitespaces from the end
$mail_fixed
++
;
goto
restart
;
# Some mails may have duplicated messages
}
...
...
@@ -445,7 +468,7 @@ sub update_table
sub
checksum
{
my
(
$txt
)
=
@_
;
my
(
$crc
,
$i
,
$count
);
my
(
$crc
,
$i
,
$count
);
$count
=
length
(
$txt
);
for
(
$crc
=
$i
=
0
;
$i
<
$count
;
$i
++
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment