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);//解釈失敗 } } }
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(); }
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(); }
//メール本文から添付されているメールを取り出す 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; }