Thunderbird tips and tricks: Remove Duplicate Messages

Many moons ago, when I switched from POP to IMAP, I had to have my laptop and desktop upload all of the locally saved email so I wouldn’t lose anything. This was before I had infinite storage, and the duplicates were eating valuable space on my 4G server drive. Back then, I wrote a perl script that cleaned up my mbox files; but it only deleted duplicates within a given mbox file. These days my email usage is larger, and my sloppage is huge; especially when I consolidate or shift around accounts. I’ve been lazy and just living with it. No longer…

I recently discovered “Remove Duplicate Messages” for Thunderbird. I created a temp account, copied over a few thousand messages, across several folders, twice; then I did a few test runs. As far as I can tell it runs perfectly and doesn’t delete what it shouldn’t.

It isn’t a utility that you’ll be running every day, but when you do run it you will be happy with the results.

-Chris Knight

Why yes, I am a bastard.

joy_cute000111222
1:08
Hello,I’ll be glad to inform you that I have a part time job going on,we are looking for a Male or Female representative,who can be working for us as a partime worker and get ($300) on every work u do. and we are happy to inform you that this would not affect your present state of work.

Chris Knight
1:10
Thank you for contacting me. I already have a side job. I have a buddy at Yahoo who buys me a beer every time I give him a spamming/scamming ID that he can delete and add to his weekly performance index. Congrats, your account has about 20 minutes of life left.

I didn’t even have to add this person to my ignore list… They just went away on their own… 😉

-Chris Knight

How to lose a customer by giving them what they want, the wrong way.

I like to describe myself as a professional Jack Of All Trades Geek. I can build you a computer from scratch, install the OS of your choice, make it part of a network, and write code for in in a half dozen languages. I have been making my living with these skills for over twenty years. It is a fact of life in this business that customers will ask me to do things that I don’t think are a good idea. Nine times out of ten explaining my reasoning against it will convince them. There is always that tenth out of ten, where the customer believes they know best. My way of handling this is to write out a document explaining my concerns, and the potential ramifications, and have them sign it as a work order before I begin. I have had to go to that extreme a total of three times in my career. Two times the customer backed down, and the last time they signed the work order effectively freeing me from obligation if that last minute code change blew up in their faces while I was on a plane flight to Fiji. This is how I handle myself, professionally, when I am at odds with my clients. Most of my new gigs are word-of-mouth, so my clients must be happy with me.

Recently I found myself in the role of customer, having paid an outside consultant to upgrade my Mail::Toaster based mail server. My time is worth a lot more than it was when I originally started using this particular mail server solution. I have been finding myself putting off the upgrade because I couldn’t drop any of my billable time, and my personal time has been getting far too precious lately. I hired Matt Simerson, the author of Mail::Toaster, so it isn’t like I hired someone off of Craig’s List.

The upgrade went smoothly, in as much as there were no outages and everything seems to be working at least as well as it had been. Post upgrade, I noticed that vpopmail, one of the components of the system, had not been upgraded to the most current stable release. I wrote Matt to ask “Was there any particular reason not to upgrade vpopmail?” Simple enough question, and since he is the expert on the system I figured he would tell me. Nope, not a chance; his response was “Is there any particular reason to upgrade vpopmail?” This was not the response I expected. I had expected a technical answer, not a passive-aggressive non-answer. I wrote back explaining why I had expected an upgrade of this package, and I closed my email with a renewal of my inquiry as to why it was not upgraded:

That isn’t an answer to my question. But, I’ll still answer yours first and trust that at some point mine will be answered:

Do I know of a specific security hole that is a concern to me, no.

Did I mention that I would like to get vpopmail correctly upgraded in my initial email, specifically stating the package and issue with the way pkg_info was reporting the version, yes.

While you did mention that the output of pkg_info was a cosmetic issue, you did not mention that there were any reasons not to upgrade it or known problems with the latest version. Therefore I had no reason to expect you would not be upgrading it.

In fact, it was an expectation that the port would be upgraded, given that the description of the Upgrade service on your site states “This includes upgrading all FreeBSD ports related to email and all Mail::Toaster dependencies.”

Expecting your normal procedure to be upgrading all mail related ports, I informed you prior to initiating service that there was a pkg_info quirk that would make it seem this port was up to date when it wasn’t.

So, I log in and notice that vpopmail hadn’t been upgraded, and that prompted me to ask if there was a specific reason.

-Chris

I know I rambled a bit, but I was home sick and running a low grade fever, and that makes my train of thought a little less straight forward than usual. But still, even re-reading it, I believe I explained why I had thought the upgrade would happen, and reiterated my inquiry as to whether or not there was a specific reason it was not performed. What I received in response was a professionally phrased explanation of completely unprofessional behavior:

Many a person, myself included, has broken their toaster for no better reason than, “a new version is available.” If your machine is a production server, that is simply inappropriate management. Testing servers are for running the newest versions of everything, not production ones. You already had a problem using 5.4.17 yet you seem convinced its a good idea. Why?

Newer isn’t necessarily better. Upgrading Mail-Toaster doesn’t mean getting the newest possible versions of software, nor will it ever mean such a thing. It means getting the latest versions of tested software known to work reliably in a Mail Toaster environment. Most people, particularly those who use these in production environments tend to favor such a conservative approach. I suspect you would too.

You are welcome to deviate from my recommendations by simply changing the values in toaster-watcher.conf and rebuilding as desired. If using port management tools is more important to you than having a reliable mail server, then set the vpopmail version number to “port” and you’ll get the latest version of vpopmail from FreeBSD ports installed.

When stuff breaks because you portupgraded vpopmail, as it has before and certainly will again, you’ll have yourself to blame. Vpopmail is not a trivial part of Mail Toaster, so upgrading it willy nilly is a distinctly bad idea. Qmail is compiled against it, the chkuser patches have specific vpopmail requirements. Using newer versions than I’ve had time to test is probably not wise if you don’t have the resources to determine what the changes are, what problems they cause, and how to resolve them.

I have answered your question, but you did not in fact answer mine. You provided reasons why you expected a newer version, but not a single reason “why” you want the newer version.

Your Mail Toaster was running the newest version of vpopmail that I’ve had time to test. That version number is hard coded into toaster-watcher.conf. I don’t think using a newer version is wise, but I don’t care to argue about it. You asked for 5.4.17, you have it installed now. I suggest testing to assure it’s working as you expect. I think I fixed the issue you ran into earlier.

Matt

So, Matt has had problems with vpopmail and had not tested the version for which I had inquired. I completely understand that, and had he told me that in the first place I would have been satisfied. In fact, it is his job as a consultant / sysadmin to communicate these concerns with his clients. I asked, twice, for his reasoning in regards to the version of a piece of software on my system post paid upgrade. Unfortunately, Matt didn’t share that reasoning until after he had used his open ssh session on my server to upgrade vpopmail to a version he had not tested and did not trust. As a paid consultant to whom I had granted sudo access to my mail server, he denied me the ability to make an informed decision, upgraded vopomail to a version he didn’t trust, and then wrote me to tell me why it was a bad idea after he had already performed a task for which he supposedly had reservations. Matt violated the trust I had given him in giving him root access to my server.

Matt said “I don’t think using a newer version is wise, but I don’t care to argue about it.” Except I didn’t want to argue, I wanted to understand; and the first part of understanding something you don’t know is to ask questions. One of the guiding principles in my life came from the first page of a kendo book I read in high school: “To ask is but a moment’s shame. Not to ask, and remain ignorant, is a lifelong shame”. So, I ask questions. It seems to me that my asking ‘why’ offended Matt, and his response to my questioning was beyond unprofessional.

To this, I replied:

Matt,

I am not trying to upset you, and if my previous response was a bit rambling it is because I am home sick with the flu.

All you had to say when I asked if there was a particular reason why you didn’t install 5.4.17 was “because vpopmail is a frequent source of problems, and I haven’t tested that version”. I would have been OK with that. A clue as to your reasoning was all for which I had asked.

Instead of saying that, in response to my question, you answer with a question,. And, when I press you for the reason why you didn’t install it, rather than simply give me a reason you upgraded it (without sharing your concerns first). Then you FINALLY share your concerns and tell me that any problems are my fault. That was a damn pissy thing to do when all I was asking for was your reasoning.

Are you always like this? Do you consider it professional to not communicate your concerns about a particular version and then to tell the customer it is their fault they didn’t make an informed decision?

You will note that I closed my previous email not with a request that you perform the upgrade, but a repetition of my inquiry as to your reasoning:

“So, I log in and notice that vpopmail hadn’t been upgraded, and that prompted me to ask if there was a specific reason.”

Again, I’m not trying to be a pain; but your actions and then after-the-fact explanation are giving me the impression that I have in some way pissed you off. Is that the case?

-Chris

Matt’s reply was a study in someone with a god complex and a chip on their shoulder. Rather than answer my question so that I understood, he wanted to teach me a lesson, and he completely fails to comprehend that I was asking for a explanation of the choices he made during the install. I am being taught a lesson for questioning his judgment. That is not part of his description of his professional services on his website.

On Jan 6, 2007, at 12:31 AM, Chris Knight wrote:

> All you had to say when I asked if there was a particular reason why
> you didn’t install 5.4.17 was “because vpopmail is a frequent source
> of problems, and I haven’t tested that version”. I would have been OK
> with that. A clue as to your reasoning was all for which I had asked.

The example reason you offer would be completely irrelevant if there
was a compelling reason for upgrading.
As I expressed earlier, there are quite a few reasons behind not
upgrading everyone by default: lack of testing, possible
compatibility issues, chained dependencies, and a lack of time to
read the changelogs to make sure there aren’t any surprises, etc.

> Instead of saying that, in response to my question, you answer with
> a question.

Forgive me for being so blunt, but you still haven’t answered my
question. I believe this is because you don’t have a good reason for
using 5.4.17 other than, “the third octet is bigger.” I am trying
to help you see that is NOT a good choice. In this case, it’s not
really a big deal. I happen to know that 5.4.17 will work, once a
couple tweaks are made. But, I also know that this very same issue
will recur and eventually, it will bite you in the ass hard enough
that you won’t sit for a couple days. Then you’ll understand why I
ask you, “why do you insist on upgrading?”

Remember, my perspective is that of one who is continually fixing
Mail Toasters that other admins break. It is seldom a problem with
Mail Toaster, it is nearly always faulty judgement (and/or ignorance)
on the part of the admin that breaks it. Upgrading every time a new
version of something comes out is an absolutely terrible policy that
is sure to cause you and your clients down time.

> Are you always like this? Do you consider it professional to not
> communicate your concerns about a particular version and then to tell
> the customer it is their fault they didn’t make an informed decision?

Yes, I always try to help the person who causes a problem see that
the choice they made isn’t necessarily a good one. On occasion, an
admin will get upset when I point out that their problem is/was self
inflicted.

If you had a good reason for upgrading to vpopmail (such as, “I read
the changelog and 5.4.17 fixes issue X which I am having”) then I
would have said no more and upgraded you. But I suspected you had no
good reason and had just created an excellent opportunity to point
out that you were headed down a very bumpy road.

> Again, I’m not trying to be a pain; but your actions and then
> after-the-fact explanation are giving me the impression that I have in
> some way pissed you off. Is that the case?

If I were pissed, I should think a better use of my time would be to
ignore you. What is it to me if you want to be on 5.4.17? It’s your
toaster, and if there are problems with it, they are yours. If you
can’t resolve them yourself, then it’s likely beneficial to my
financial interests. So if you consider that I have a vested monetary
interest in having your Mail Toaster broken, then I must have another
interest at stake.

If you don’t listen to me now, I know that soon enough upgrade-itis
will bite you hard. Perhaps then, after many wasted hours, you’ll
look back upon this thread and thank me for trying to deliver a hard
won bit of advise. Then you will better understand my motives.

Matt

Of particular relevance to me is this passage:

> Are you always like this? Do you consider it professional to not
> communicate your concerns about a particular version and then to tell
> the customer it is their fault they didn’t make an informed decision?

Yes, I always try to help the person who causes a problem see that
the choice they made isn’t necessarily a good one. On occasion, an
admin will get upset when I point out that their problem is/was self
inflicted.

I asked for Matt’s reasons for not upgrading vpopmail, and instead of answering me he upgraded it and now tells me that any problems are self-inflicted. No, Matt, they are not. If I experience any problems they are the result of a consultant with an old testament vengeful god complex who doesn’t like to have his motives questioned. The thing is, Matt can’t say “I told you so” because he didn’t share his concerns first. Matt put his cart before the horse in his arrogant march to the pulpit.

People hire consultants because that person’s knowledge and experience are valuable for solving problems and avoiding issues. That benefit is completely lost if the consultant takes the attitude of teaching the customer a lesson and then shares their knowledge and experience afterwards. Behavior like this gives consultants a bad name. There is a word for sysadmins who feel the need to teach their clients lessons the hard way: unemployed

Matt may be a good programmer, and maybe a good sysadmin; but he seems to have skipped every class, seminar and life lesson on how to behave professionally. I will never again let him have access to my server. What started as a convenience has turned into a life lesson for me: The author of a software package may know it best, but that doesn’t mean you want him poking around in your server.

There is an amusing bit of hypocrisy about the whole situation. Matt Simerson wanted to teach me a lesson for asking about a software upgrade that he considered unnecessary, though the lesson he taught me was not what he intended. I was running Mail::Toaster 4.10 on my server without a problem, and there was no compelling reason to upgrade to 5.04. Did Matt ask me to prove that I had a reason to upgrade from 4.10 to 5.04 before he accepted my $200 for the job? Not a chance; he accepted my money and performed that upgrade no questions asked. If he really felt that people should need a reason to upgrade software versions he would have asked me “Is there any particular reason to upgrade Mail::Toaster?” before he accepted the gig, but he didn’t. His greed outweighed his moral superiority on that one. Actions always give a better view into a person’s heart than the words they profess.

At this point I’ve given up communicating with him. He doesn’t seem capable of realizing that I was trying to understand why he let a particular package at an older version, when he upgraded everything else; and that I was not trying to demand that he do the upgrade against his unshared better judgment. He doesn’t seem to understand that he violated my trust when he acted instead of answered. All I really care to do now is document my experience for anyone else who may be considering hiring him so they will at least know what they are getting into. I personally will never hire Matt Simerson of tnbi.biz again. Your mileage may vary.

Here is a lesson for you, Matt: Unhappy customers are more vocal than happy ones.

Chris Knight

I use Amazon affiliate links in some of my posts. I think it is fair to say my writing is not influenced by the $0.40 I earned in 2022.