Thanks for the update, David. I'll close the ticket now.

Closed per reporter's feedback.

** Changed in: thunderbird (Ubuntu)
       Status: Incomplete => Invalid

You received this bug notification because you are a member of Desktop
Packages, which is subscribed to thunderbird in Ubuntu.

  CR characters block/confuse Thunderbird body-contains filters

Status in thunderbird package in Ubuntu:

Bug description:
  Thunderbird filters do not find some text strings that follow CR (x0d,
  carriage return) characters in the body of the email.  This problem
  occurs whether the filtering is done interactively or with filters
  saved in msgFilterRules.dat using the Tools/Message Filters menu item.

  The problem occurs for me in the context of cron jobs that call curl.
  curl sends lines to stderr that are terminated with CR characters
  rather than LF characters.  This blocks Thunderbird filtering of cron
  email based on results that occur after the curl command.

  The problem is occuring with Thunderbird 14.0 on Ubuntu 12.04.1 LTS.
  The problem can be created all on one machine.  Postfix is the MTA
  using virtual Maildir mailboxes, Dovecot is the imap server.

  I have recreated the essential problem with the attached files.  There
  are four versions of the same email body.

  msg1-withCRline.txt is the worst offender and has the following contents:
  =============== file starts on next line ============
  =============== file ends on previous line ============
  where the above text lines are terminated by a LF character (x0a, line feed) 
and the sequence '\r' denotes the CR character (x0d, carriage return).  Some 
programs recognize the CR character as a line termination character, others do 
not.  Body-contains filters will find 'TARGETBEFORE' but will not find 'OTHER' 

  msg2-trCR2plus.txt is the same as msg1-withCRline.txt, but with the CR
  characters replaced by '+' characters.  Body-contains filters work
  correctly with this message body.  They find 'TARGETBEFORE', 'OTHER',

  msg3-trCR2LF.txt is the same as msg1-withCRline.txt, but with the CR
  characters replaced by LF characters.  Body-contains filters work
  correctly with this message body.  They find 'TARGETBEFORE', 'OTHER',

  msg4-shortCRline.txt is the same as msg1-withCRline.txt, but with the
  two consecutive characters "\r3" deleted, so there is only one CR
  character in the message body.  Body-contains filters will find
  'TARGETBEFORE'.  They will also find 'OTHER' but will not find
  'TARGETAFTER', which suggests the problem is more complicated than the
  other examples show.

  sendfiltertest is a simple bash script that will mail each message body using 
the mail command to a recipient.  It should be called with two arguments, the 
recipient and an optional test number, for example:
    $./sendfiltertest myemailaddress 7

  msgFilterRules.dat is the file containing a stored body-contains
  filter that looks for 'TARGETAFTER'.

  The procedure for recreating the problem can be as simple as:

  1.  Download and extract the above files to a directory.  Make sure
  the sendfiltertest file has executable permissions.  Use the chmod
  command if it does not.

  2.  Start Thunderbird.

  3.  Click on the Inbox of the recipient of the test emails.

  4.  Open a terminal window and change the working directory using the
  cd command to the directory where the above files have been

  5.  Run the sendfiltertest command.

  6.  Return to Thunderbird and scroll/sort the Inbox listing to show
  the four messages sent by the sendfiltertest command, each with a
  subject that begins with 'Test #ID msgN-', where 'ID' is the second
  argument given to the sendfiltertest command and 'N' is a digit 1-4
  corresponding to the message body file name.

  7.  Click in the filter text field above the Inbox list of messages,
  which initially has the prompt 'Filter these message...

  8.  Enter the text (without the quotes) 'targetb'.  All four messages
  will be selected by the filter.

  9.  Change the filter text to 'targeta'.  Of the four messages, only
  msg2 and msg3 will be selected.  Messages msg1 and msg4 will not be

  10. Change the filter text to 'other'.  Of the four messages, only
  msg2, msg3, and msg4 will be selected. Message msg1 will not be

  My current workaround for this problem is to change the cron job script to 
redirect the curl stderr to a file and then copy the file to stderr after 
changing all CR characters to LF characters using the tr command:
    $tr '\r' '\n' < curl-stderr >&2

  ProblemType: Bug
  DistroRelease: Ubuntu 12.04
  Package: thunderbird 14.0+build1-0ubuntu0.12.04.1
  ProcVersionSignature: Ubuntu 3.2.0-29.46-generic-pae 3.2.24
  Uname: Linux 3.2.0-29-generic-pae i686
  NonfreeKernelModules: wl
  AddonCompatCheckDisabled: False
  AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
  ApportVersion: 2.0.1-0ubuntu12
  Architecture: i386
   **** List of CAPTURE Hardware Devices ****
   card 0: Intel [HDA Intel], device 0: ALC270 Analog [ALC270 Analog]
     Subdevices: 1/1
     Subdevice #0: subdevice #0
   /dev/snd/controlC0:  webdev1    2925 F.... pulseaudio
  BuildID: 20120714011110
  CRDA: Error: command ['iw', 'reg', 'get'] failed with exit code 1: nl80211 
not found.
   Card hw:0 'Intel'/'HDA Intel at 0xb4400000 irq 44'
     Mixer name : 'Intel IbexPeak HDMI'
     Components : 'HDA:10ec0270,103c1439,00100100 
     Controls      : 27
     Simple ctrls  : 13
  Channel: Unavailable
  Date: Fri Aug 24 14:24:55 2012
  ExecutablePath: /usr/lib/thunderbird/thunderbird
  ForcedLayersAccel: False
   auto lo
   iface lo inet loopback
  InstallationMedia: Ubuntu 11.04 "Natty Narwhal" - Release i386 (20110427.1)
   default via dev eth0  proto static dev eth0  scope link  metric 1000 dev eth0  proto kernel  scope link  src  metric 1
  PrefSources: prefs.js
  Profiles: Profile0 (Default) - LastVersion=14.0/20120714011110 (In use)
   icedtea-6-plugin  1.2-2ubuntu1.1
   rhythmbox-mozilla 2.96-0ubuntu4.1
   totem-mozilla     3.0.1-0ubuntu21
  RunningIncompatibleAddons: False
  SourcePackage: thunderbird
  UpgradeStatus: Upgraded to precise on 2012-06-02 (82 days ago)
   Aug 24 08:55:32 HP10C dhclient: DHCPREQUEST of on eth0 to port 67
   Aug 24 08:55:32 HP10C dhclient: DHCPACK of from
   Aug 24 08:55:32 HP10C dhclient: bound to -- renewal in 34206 
   Aug 24 12:30:17 HP10C kernel: [870110.921074] [drm:drm_mode_getfb] *ERROR* 
invalid framebuffer id
   Aug 24 12:39:25 HP10C kernel: [870657.891846] [drm:drm_mode_getfb] *ERROR* 
invalid framebuffer id 09/06/2010
  dmi.bios.vendor: Hewlett-Packard
  dmi.bios.version: F.35
  dmi.board.asset.tag: Base Board Asset Tag 1439
  dmi.board.vendor: Hewlett-Packard
  dmi.board.version: 60.3E
  dmi.chassis.asset.tag: Chassis Asset Tag
  dmi.chassis.type: 10
  dmi.chassis.vendor: Hewlett-Packard
  dmi.chassis.version: Chassis Version
dmi:bvnHewlett-Packard:bvrF.35:bd09/06/2010:svnHewlett-Packard:pnHPG72NotebookPC:pvr0594110000252710001020100:rvnHewlett-Packard:rn1439:rvr60.3E:cvnHewlett-Packard:ct10:cvrChassisVersion: HP G72 Notebook PC
  dmi.product.version: 0594110000252710001020100
  dmi.sys.vendor: Hewlett-Packard

To manage notifications about this bug go to:

Mailing list:
Post to     :
Unsubscribe :
More help   :

Reply via email to