Example #1
0
 public MlCmd(Logger logger, Mail mail, MlOneUser mlOneUser)
 {
     //this.logger = logger;
     var lines = Inet.GetLines(mail.GetBody());
     foreach (var line in lines) {
         var str = mail.GetEncoding().GetString(line);
         str = Inet.TrimCrlf(str);
         //Ver5.6.4 前後の空白を除去する
         str = str.Trim();
         if (str == "")//空白行は無視する
             continue;
         if (!SetCmd(str, mlOneUser)) {
             logger.Set(LogKind.Error, null, 40, str);//解釈失敗
         }
     }
 }
Example #2
0
        public void Dataの動作確認_Bodyの確認_ドットのみの行を含む(InetKind inetKind)
        {
            //setUp
            var sut = CreateSmtpClient(inetKind);

            var mail1 = new Mail();
            mail1.Init2(Encoding.ASCII.GetBytes("1:1\r\n\r\nbody1\r\nbody2\r\n.\r\n"));

            //exercise
            sut.Connect();
            sut.Helo();
            sut.Mail("1@1");
            sut.Rcpt("*****@*****.**");
            sut.Data(mail1);
            sut.Quit();

            //verify
            var mail2 = _testServer.GetMf("user1")[0];
            Assert.That(mail2.GetBody(), Is.EqualTo(mail1.GetBody()));

            //tearDown
            sut.Dispose();
        }
Example #3
0
        public void Dataの動作確認_Bodyの確認_最後が改行で終わらない(InetKind inetKind)
        {
            //setUp
            var sut = CreateSmtpClient(inetKind);

            var mail1 = new Mail();
            mail1.Init2(Encoding.ASCII.GetBytes("1:1\r\n\r\nbody1\r\nbody2\r\n123"));

            //exercise
            sut.Connect();
            sut.Helo();
            sut.Mail("1@1");
            sut.Rcpt("*****@*****.**");
            sut.Data(mail1);
            sut.Quit();

            //verify
            var mail2 = _testServer.GetMf("user1")[0];
            var actual = mail2.GetBody().Length;
            var expected = mail1.GetBody().Length + 2;//\r\nが追加される
            Assert.That(actual, Is.EqualTo(expected));

            //tearDown
            sut.Dispose();
        }
Example #4
0
        //メール本文から添付されているメールを取り出す
        List<Mail> GetAttach(Mail orgMail)
        {
            var ar = new List<Mail>();

            var lines = new List<string>();
            foreach (var buf in Inet.GetLines(orgMail.GetBody())) {
                var s = Encoding.ASCII.GetString(buf);
                lines.Add(s);
            }
            Mail mail = null;
            for (int i = 0; i < lines.Count; i++){
                if (lines[i].IndexOf("--BJD-Boundary--") != -1) {
                    break;
                }
                if (lines[i].IndexOf("--BJD-Boundary") != -1) {
                    if (mail != null)
                        ar.Add(mail);
                    do {
                        i++;
                    } while (lines[i] != "\r\n");
                    mail = new Mail();
                    continue;
                }
                if (mail != null) {
                    mail.AppendLine(Encoding.ASCII.GetBytes(lines[i]));
                }
            }
            if (mail != null)
                ar.Add(mail);
            return ar;
        }