From: Yoshimasa Niwa Date: 2011-01-07T22:06:34+09:00 Subject: [ruby-core:34222] [Ruby 1.9-Bug#4249][Open] Net::IMAP gets a parse error response while sending multibyte mail --mimepart_4d270fd729157_1f2bb5c782016ed Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Bug #4249: Net::IMAP gets a parse error response while sending multibyte = mail http://redmine.ruby-lang.org/issues/show/4249 Author: Yoshimasa Niwa Status: Open, Priority: Normal Category: lib ruby -v: ruby 1.9.2p136 (2010-12-25 revision 30365) [x86_64-darwin10.6.0]= RFC3501 which defines IMAP version 4 rev 1 said: "A literal is a sequence of zero or more octets (including CR and LF), pr= efix-quoted with an octet count in the form of an open brace ("{"), the number of octets, close brace ("}= "), and CRLF." current imap.rb sends the number of characters not the octet count while = sending String to server. def send_literal(str) put_string("{" + str.length.to_s + "}" + CRLF) ... end I've attached the code to reproduce the bug, and a small patch. if Net::IMAP is designed that it expects ASCII-8BIT String, this may not = a bug though. Net::IMAP=E3=82=92=E4=BD=BF=E3=81=A3=E3=81=A6UTF-8=E3=81=AA=E3=81=A9=E3=81= =A7=E3=82=A8=E3=83=B3=E3=82=B3=E3=83=BC=E3=83=89=E3=81=95=E3=82=8C=E3=81=9F= =E3=83=A1=E3=83=BC=E3=83=AB=E3=82=92=E3=80=81=E4=BE=8B=E3=81=88=E3=81=B0A= PPEND=E3=81=99=E3=82=8B=E9=9A=9B=E3=81=AB=E3=80=81 =E3=83=90=E3=82=A4=E3=83=88=E6=95=B0=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=8F=E6= =96=87=E5=AD=97=E6=95=B0=E3=82=92=E9=80=81=E3=81=A3=E3=81=A6=E3=81=97=E3=81= =BE=E3=81=86=E3=81=9F=E3=82=81=E3=81=AB=E6=9C=9F=E5=BE=85=E3=81=97=E3=81=AA= =E3=81=84=E8=BF=94=E7=AD=94=E3=81=8C=E8=BF=94=E3=82=8A=E3=81=BE=E3=81=99=E3= =80=82 =E3=82=82=E3=81=97=E3=80=81Net::IMAP=E3=81=8C=E5=B8=B8=E3=81=ABASCII-8BIT= =E3=81=AE=E6=96=87=E5=AD=97=E5=88=97=E3=82=92=E6=9C=9F=E5=BE=85=E3=81=99=E3= =82=8B=E3=81=AE=E3=81=A7=E3=81=82=E3=82=8C=E3=81=B0=E3=80=81=E3=83=90=E3=82= =B0=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=84=E3=81=A8=E6=80=9D=E3=81=84=E3=81=BE= =E3=81=99=E3=80=82 ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4d270fd729157_1f2bb5c782016ed Content-Type: text/x-ruby-script; name=imap_test.rb Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=imap_test.rb IyEvdXNyL2Jpbi9lbnYgcnVieQojIGVuY29kaW5nOiBVVEYtOAoKcmVxdWly ZSAnbmV0L2ltYXAnCgpOZXQ6OklNQVAuZGVidWcgPSB0cnVlCgpFTUFJTCA9 IDw8RU5EX09GX1JBV19FTUFJTApTdWJqZWN0OiB0ZXN0CkZyb206IFlvc2hp bWFzYSBOaXdhIDxuaXdAbml3LmF0PgpUbzogWW9zaGltYXNhIE5pd2EgPG5p d0BuaXcuYXQ+CgrjgZPjgpPjgavjgaHjgo/jgIHkuLnnvr3jgafjgZnjgIIK RU5EX09GX1JBV19FTUFJTAouZ3N1YigvXHI/XG4vLCAiXHJcbiIpCgpiZWdp bgogIGltYXAgPSBOZXQ6OklNQVAubmV3KCdpbWFwLmdtYWlsLmNvbScsIDk5 MywgdHJ1ZSwgbmlsLCBmYWxzZSkKICBpbWFwLmxvZ2luKCJ1c2VybmFtZSIs ICJwYXNzd29yZCIpCiAgaW1hcC5hcHBlbmQoIkltcG9ydGVkIiwgRU1BSUwp ICMgPT4gUzogUlVCWTAwMDIgQkFEIENvdWxkIG5vdCBwYXJzZSBjb21tYW5k CmVuc3VyZQogIGltYXAuZGlzY29ubmVjdAplbmQK --mimepart_4d270fd729157_1f2bb5c782016ed Content-Type: application/octet-stream; name=imap.rb.patch Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=imap.rb.patch SW5kZXg6IGxpYi9uZXQvaW1hcC5yYgo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBsaWIvbmV0L2ltYXAucmIJKHJldmlzaW9uIDMwNDgzKQorKysgbGli L25ldC9pbWFwLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0xMjY5LDcgKzEyNjks NyBAQAogICAgIGVuZAogCiAgICAgZGVmIHNlbmRfbGl0ZXJhbChzdHIpCi0g ICAgICBwdXRfc3RyaW5nKCJ7IiArIHN0ci5sZW5ndGgudG9fcyArICJ9IiAr IENSTEYpCisgICAgICBwdXRfc3RyaW5nKCJ7IiArIHN0ci5ieXRlc2l6ZS50 b19zICsgIn0iICsgQ1JMRikKICAgICAgIEBjb250aW51YXRpb25fcmVxdWVz dF9hcnJpdmFsLndhaXQKICAgICAgIHJhaXNlIEBleGNlcHRpb24gaWYgQGV4 Y2VwdGlvbgogICAgICAgcHV0X3N0cmluZyhzdHIpCkBAIC0yNjAzLDcgKzI2 MDMsNyBAQAogICAgICAgICAgIHJldHVybiAnIiInCiAgICAgICAgIHdoZW4g L1tceDgwLVx4ZmZcclxuXS9uCiAgICAgICAgICAgIyBsaXRlcmFsCi0gICAg ICAgICAgcmV0dXJuICJ7IiArIHN0ci5sZW5ndGgudG9fcyArICJ9IiArIENS TEYgKyBzdHIKKyAgICAgICAgICByZXR1cm4gInsiICsgc3RyLmJ5dGVzaXpl LnRvX3MgKyAifSIgKyBDUkxGICsgc3RyCiAgICAgICAgIHdoZW4gL1soKXsg XHgwMC1ceDFmXHg3ZiUqIlxcXS9uCiAgICAgICAgICAgIyBxdW90ZWQgc3Ry aW5nCiAgICAgICAgICAgcmV0dXJuICciJyArIHN0ci5nc3ViKC9bIlxcXS9u LCAiXFxcXFxcJiIpICsgJyInCg== --mimepart_4d270fd729157_1f2bb5c782016ed--