/// <summary> /// 选中控制模式事件 /// </summary> /// <param name="collectMode"></param> private void OnSelectedMode(CollectMode collectMode) { if (collectMode.ModeByte == 0xff) { LogInfo = "请选择采集模式\n"; MessageBox.Show("请选择一种采集模式!"); } else { GatherVm.OnSendData(0x03, 0x00, collectMode.ModeByte); GatherVm.CurrentMode = collectMode; } }
private void SendData(string data) { // Check for end of headers if (m_CollectMode == CollectMode.Headers && data == String.Empty) { m_CollectMode = CollectMode.Content; return; } // Collecting content if (m_CollectMode==CollectMode.Content) { if (!String.IsNullOrEmpty(data)) m_collectedContent.Append(data); m_collectedContent.Append("\r\n"); return; } // Write it if (String.IsNullOrEmpty(data)) { writer.Write("\r\n"); writer.Flush(); return; } StringReader sr = new StringReader(data); string line; bool escapeDots = deliveryMethod == SmtpDeliveryMethod.Network; while ((line = sr.ReadLine()) != null) { CheckCancellation(); if (escapeDots && line.StartsWith(".")) { line = "." + line; } writer.Write(line); writer.Write("\r\n"); } writer.Flush(); }
void StartCollecting() { if (DomainKeysSigner == null && DkimSigner == null) { m_CollectMode = CollectMode.None; return; } m_CollectMode = CollectMode.Headers; m_collectedHeaders = new List<EmailHeader>(); m_collectedContent = new StringBuilder(); }
void FinishCollecting() { if (m_CollectMode == CollectMode.None) return; var e = new Email() { Headers = m_collectedHeaders, Body = m_collectedContent.ToString(), Encoding = writer.Encoding }; // Generate Dkim signature if (DkimSigner != null) { m_collectedHeaders.Insert(0, DkimSigner.SignMessage(e)); } // Generate domain keys signature if (DomainKeysSigner != null) { m_collectedHeaders.Insert(0, DomainKeysSigner.SignMessage(e)); } m_CollectMode = CollectMode.None; // Write all headers foreach (var h in m_collectedHeaders) { SendHeader(h.Key, h.Value); } // Write the separator SendData(string.Empty); // Write the content SendData(e.Body); }
/// <summary> /// Defines collection mode /// </summary> public TermsAggregation <T> CollectMode(CollectMode mode) { RegisterJsonPart("'collect_mode': {0}", mode.AsString().Quotate()); return(this); }