Boston Linux & UNIX was originally founded in 1994 as part of The Boston Computer Society. We meet on the third Wednesday of each month at the Massachusetts Institute of Technology, in Building E51.

BLU Discuss list archive


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

[Discuss] Mailcheck not showing new mail



>Bill Horne wrote:
>> The result of running "mailcheck -cs" without a local .mailcheckrc is
>> "no new mail." when there is mail in the mailbox, and no output when the
>> mailbox is empty. It *is* paying attention to the mail spool, albeit not
>> in the way I want. What's up with that?

>> ...why it would be able to tell the difference between a spool file
>> with <anything> in it, or <nothing> in it, but not signal if the file
>> has new mail?

> With Maildir detecting new mail is simply a matter of looking for the
> presence of files in a 'new' subdirectory. If I recall, with mbox
> files the file has to be parsed and the headers of each message
> examined.  There needs to be coordination between how the MUA marks
> messages as read and the mail checking tool. Maybe there is a
> disagreement between mailcheck and your MUA.

> The documentation on mailcheck seems sparse. It doesn't even state
> what the default behavior is if there are no config files. To
> understand what it is doing would require using strace and/or
> examining the source.

> (I'd try running "strace -o/tmp/mailcheck ..." then grep
> /tmp/mailcheck for /var to see what spool files it is accessing. If
> you spot an open() syscall, it'll return a file descriptor, and then
> you can look for subsequent syscalls (like read() and stat()) on that
> descriptor to see what it is doing with the file.)

Here's the output file after I renamed .mailcheckrc: /etc/mailcheckrc has only comments.

execve("/usr/bin/mailcheck", ["mailcheck"], [/* 21 vars */]) = 0
brk(0)                                  = 0x82c000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dca743000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=24081, ...}) = 0
mmap(NULL, 24081, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f4dca73d000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1845024, ...}) = 0
mmap(NULL, 3953344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f4dca15d000
mprotect(0x7f4dca319000, 2093056, PROT_NONE) = 0
mmap(0x7f4dca518000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7f4dca518000
mmap(0x7f4dca51e000, 17088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f4dca51e000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dca73c000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dca73a000
arch_prctl(ARCH_SET_FS, 0x7f4dca73a740) = 0
mprotect(0x7f4dca518000, 16384, PROT_READ) = 0
mprotect(0x7f4dca745000, 4096, PROT_READ) = 0
munmap(0x7f4dca73d000, 24081)           = 0
brk(0)                                  = 0x82c000
brk(0x84d000)                           = 0x84d000
open("/home/moder8/.mailcheckrc", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/mailcheckrc", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1446, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dca742000
read(3, "# mailcheckrc\tDefault configurat"..., 4096) = 1446
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f4dca742000, 4096)            = 0
exit_group(0)                           = ?
+++ exited with 0 +++

... and here's the output file after .mailcheckrc was restored: 

execve("/usr/bin/mailcheck", ["mailcheck"], [/* 21 vars */]) = 0
brk(0)                                  = 0x1643000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f19bdc00000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=24081, ...}) = 0
mmap(NULL, 24081, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f19bdbfa000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\37\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1845024, ...}) = 0
mmap(NULL, 3953344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f19bd61a000
mprotect(0x7f19bd7d6000, 2093056, PROT_NONE) = 0
mmap(0x7f19bd9d5000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7f19bd9d5000
mmap(0x7f19bd9db000, 17088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f19bd9db000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f19bdbf9000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f19bdbf7000
arch_prctl(ARCH_SET_FS, 0x7f19bdbf7740) = 0
mprotect(0x7f19bd9d5000, 16384, PROT_READ) = 0
mprotect(0x7f19bdc02000, 4096, PROT_READ) = 0
munmap(0x7f19bdbfa000, 24081)           = 0
brk(0)                                  = 0x1643000
brk(0x1664000)                          = 0x1664000
open("/home/moder8/.mailcheckrc", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0664, st_size=101, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f19bdbff000
read(3, "/var/spool/mail/$(USER)\n/home/mo"..., 4096) = 101
stat("/var/spool/mail/moder8", {st_mode=S_IFREG|0660, st_size=0, ...}) = 0
stat("/home/moder8/Mail/obfuscate", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
stat("/home/moder8/Mail/anonymous", {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
stat("/home/moder8/Mail/ok", {st_mode=S_IFREG|0660, st_size=0, ...}) = 0
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0x7f19bdbff000, 4096)            = 0
exit_group(0)                           = ?
+++ exited with 0 +++


>> Also check to see if /etc/mailcheckrc exists and see what it points to.
>> 
>> Another puzzle: on Ubuntu 14.04 LTS, it's all commented out. There is an
>> entry that looks like
>> 
>> #/var/spool/mail/$(USER)

> By convention, a commented out config line often will indicate the
> compiled-in defaults. (You can confirm that by running something like
> "strings /usr/bin/mailcheck | fgrep /var" and see if it spits out a
> similar looking path.)

> That would imply it should work as expected without altering
> /etc/mailcheckrc or adding an rc file. But you're saying you didn't
> get the expected behavior until you added "/var/mail/moder8" to
> .mailcheckrc?

I didn't get any "new mail" indication until I installed my own
.mailcheckrc file: prior to that, mailcheck would show "no new mail."
if there was /any/ email in /var/mail/(my user id), and would give a
(blank) result if the spool email file was empty.

I ran 

"strings /usr/bin/mailcheck >/tmp/mailcheck_output.txt"

... while .mailcheckrc was absent. Here is the output, which does /not/
have "/var" in it.

/lib64/ld-linux-x86-64.so.2
__gmon_start__
libc.so.6
socket
fflush
strcpy
exit
readdir
fopen
strncmp
strrchr
__strdup
perror
connect
closedir
strncpy
puts
__stack_chk_fail
getpw
fgets
strlen
strstr
herror
getopt
fclose
__strtol_internal
malloc
strcat
opendir
getenv
__ctype_b_loc
sscanf
optarg
stderr
gethostbyname
fwrite
strchr
fprintf
fdopen
__xstat
strcmp
__libc_start_main
snprintf
free
GLIBC_2.4
GLIBC_2.3
GLIBC_2.2.5
%z4 
%r4 
%j4 
%b4 
%Z4 
%R4 
%J4 
%B4 
%:4 
%24 
%*4 
%"4 
=i3 
ATUH
[]A\A]A^A_
|$	O
|$	R
fffff.
$INBOfA
T$ H
Ot~H
=j) 
*t1H
=	) 
T$ H
=l' 
+t7H
+t&H
='& 
AUATUS
[]A\A]L
[]A\A]L
ffffff.
AVAUI
[]A\A]A^
=n# 
ffff.
ffffff.
ATUSH
=j  
="  
D$HH9D$XHc
[]A\
[]A\
~|Hc
D$HH9D$X
[]A\
ffffff.
l$ H
fffff.
AVAUATUSH
t$ E1
t/E1
[]A\A]A^A_
\$ H
l$(L
d$0H
fffff.
l$ L
t$(L
|$0H
Usage: mailcheck [-bchls] [-f rcfile]
Options:
  -b  - brief output mode
  -c  - use more advanced counting method for mboxes and maildirs
  -l  - login mode, honor ~/.hushlogin file
  -s  - show "no mail" summary, if no new mail was found
  -f  - specify alternative rcfile location
  -h  - show this help screen
mailcheck: failed to stat file: %s
mailcheck: unable to open mbox %s
error: couldn't open rcfile '%s'
mailcheck: couldn't open /etc/mailcheckrc nor %s/.mailcheckrc
mailcheck: WARNING! %s may be readable by other users.
mailcheck: Type "chmod 0600 %s" to correct the permissions.
mailcheck: WARNING! %s could not be read.
mailcheck: Unable to get login information for %s
mailcheck: Not Connected To Server '%s:%d'
mailcheck: Unable to check IMAP mailbox '%s@%s:%d'
a003 STATUS %s (MESSAGES UNSEEN)
mailcheck: Error Receiving Stats '%s@%s:%d'
* STATUS %*s (MESSAGES %d UNSEEN %d)
mailcheck: Invalid User Name '%s@%s:%d'
mailcheck: Incorrect Password for user '%s@%s:%d'
mailcheck: Error Receiving STAT '%s@%s:%d'
mailcheck: ooops, unsupported experimental info semantics on %s/%s
You have %d new and %d unread messages in %s
You have %d unread messages in %s
%s: %d new and %d unread message(s)
%s: no new mail, %d unread message(s)
mailcheck: %s is not a valid maildir -- skipping.
You have %d new and %d saved messages in %s
You have %d new messages in %s
%s: %d new and %d saved message(s)
mailcheck: error, %s is not mbox or maildir
mailcheck: invalid line '%s' in rc-file
You have %d saved messages in %s
mailcheck: couldn't read environment variable HOME.
bchlsf:
%s/%s



BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org