/// POP3メールサーバーへUIDLコマンドを送信します。 /// <summary> /// Send uidl command to pop3 server. /// POP3メールサーバーへUIDLコマンドを送信します。 /// </summary> /// <returns></returns> public List <UidlCommandResult> ExecuteUidl() { UidlCommand cm = new UidlCommand(); List <UidlCommandResult> l = new List <UidlCommandResult>(); Pop3CommandResult rs = null; StringReader sr = null; String line = ""; this.CheckAuthenticate(); rs = this.Execute(cm); this.CheckResponseError(rs); sr = new StringReader(rs.Text); while (sr.Peek() > -1) { line = sr.ReadLine(); if (line == ".") { break; } if (line.StartsWith("+OK", StringComparison.OrdinalIgnoreCase) == true) { continue; } l.Add(new UidlCommandResult(line)); } return(l); }
/// 指定したMailIndexのメールをメールサーバーから削除します。 /// <summary> /// Set delete flag to specify mail index. /// To complete delete execution,call quit command after calling dele command. /// 指定したMailIndexのメールに削除フラグをたてます。 /// 実際に削除するにはさらにQUITコマンドで削除処理を完了させる必要があります。 /// </summary> /// <param name="indexList"></param> /// <returns></returns> public Boolean DeleteMail(params Int64[] indexList) { DeleCommand cm = null; Pop3CommandResult rs = null; if (this.EnsureOpen() == Pop3ConnectionState.Disconnected) { return(false); } if (this.TryAuthenticate() == false) { return(false); } for (int i = 0; i < indexList.Length; i++) { cm = new DeleCommand(indexList[i]); rs = this.Execute(cm); if (rs.Ok == false) { return(false); } } this.ExecuteQuit(); return(true); }
/// POP3メールサーバーへAPOP認証でログインします。 /// <summary> /// Log in to pop3 server by A-POP authenticate and return login success or failure as bool. /// POP3メールサーバーへAPOP認証でログインします。 /// </summary> /// <returns></returns> public Boolean TryAuthenticateByAPop() { Pop3CommandResult rs = null; String TimeStamp = ""; Int32 StartIndex = 0; Int32 EndIndex = 0; if (this.EnsureOpen() == Pop3ConnectionState.Connected) { //ユーザー名送信 rs = this.Execute("user " + this.UserName, false); if (rs.Ok == true) { if (rs.Text.IndexOf("<") > -1 && rs.Text.IndexOf(">") > -1) { StartIndex = rs.Text.IndexOf("<"); EndIndex = rs.Text.IndexOf(">"); TimeStamp = rs.Text.Substring(StartIndex, EndIndex - StartIndex + 1); //パスワード送信 rs = this.Execute("pass " + Cryptography.ToMd5DigestString(TimeStamp + this.Password), false); if (rs.Ok == true) { this._State = Pop3ConnectionState.Authenticated; } } } } return(this._State == Pop3ConnectionState.Authenticated); }
/// POP3メールサーバーへNOOPコマンドを送信します。 /// <summary> /// Send noop command to pop3 server. /// POP3メールサーバーへNOOPコマンドを送信します。 /// </summary> /// <returns></returns> public Pop3CommandResult ExecuteNoop() { Pop3CommandResult rs = null; this.EnsureOpen(); rs = this.Execute("Noop", false); return(new Pop3CommandResult(rs.Text)); }
private void CheckResponseError(Pop3CommandResult result) { if (result.Ok == true) { return; } throw new MailClientException(result.Text); }
/// POP3メールサーバーへRESETコマンドを送信します。 /// <summary> /// Send reset command to pop3 server. /// POP3メールサーバーへRESETコマンドを送信します。 /// </summary> /// <returns></returns> public Pop3CommandResult ExecuteRset() { Pop3CommandResult rs = null; this.CheckAuthenticate(); rs = this.Execute("Rset", false); this.CheckResponseError(rs); return(rs); }
/// POP3メールサーバーへSTATコマンドを送信します。 /// <summary> /// Send stat command to pop3 server. /// POP3メールサーバーへSTATコマンドを送信します。 /// </summary> /// <returns></returns> public StatCommandResult ExecuteStat() { Pop3CommandResult rs = null; this.CheckAuthenticate(); rs = this.Execute("Stat", false); this.CheckResponseError(rs); return(new StatCommandResult(rs.Text)); }
/// POP3メールサーバーへTOPコマンドを送信します。 /// <summary> /// Send top command to pop3 server. /// POP3メールサーバーへTOPコマンドを送信します。 /// </summary> /// <param name="mailIndex"></param> /// <param name="lineCount"></param> /// <returns></returns> public Pop3CommandResult ExecuteTop(Int64 mailIndex, Int32 lineCount) { Pop3CommandResult rs = null; this.CheckAuthenticate(); rs = this.Execute(new TopCommand(mailIndex, lineCount)); this.CheckResponseError(rs); return(rs); }
/// POP3メールサーバーへDELEコマンドを送信します。 /// <summary> /// Send dele command to pop3 server. /// POP3メールサーバーへDELEコマンドを送信します。 /// </summary> /// <param name="mailIndex"></param> /// <returns></returns> public Pop3CommandResult ExecuteDele(Int64 mailIndex) { DeleCommand cm = new DeleCommand(mailIndex); Pop3CommandResult rs = null; this.CheckAuthenticate(); rs = this.Execute(cm); this.CheckResponseError(rs); return(rs); }
/// POP3メールサーバーへListコマンドを送信します。 /// <summary> /// Send list command to pop3 server. /// POP3メールサーバーへListコマンドを送信します。 /// </summary> /// <param name="mailIndex"></param> /// <returns></returns> public ListCommandResult ExecuteList(Int64 mailIndex) { ListCommand cm = new ListCommand(mailIndex); Pop3CommandResult rs = null; this.CheckAuthenticate(); rs = this.Execute(cm); this.CheckResponseError(rs); return(new ListCommandResult(rs.Text)); }
/// POP3メールサーバーへNOOPコマンドを送信します。 /// <summary> /// Send noop command to pop3 server. /// POP3メールサーバーへNOOPコマンドを送信します。 /// </summary> /// <returns></returns> public Pop3CommandResult ExecuteNoop() { Pop3CommandResult rs = null; String s = ""; this.EnsureOpen(); s = this.Execute("Noop", false); rs = new Pop3CommandResult(s); return(rs); }
/// POP3メールサーバーへQUITコマンドを送信します。 /// <summary> /// Send quit command to pop3 server. /// POP3メールサーバーへQUITコマンドを送信します。 /// </summary> /// <returns></returns> public Pop3CommandResult ExecuteQuit() { Pop3CommandResult rs = null; this.EnsureOpen(); rs = this.Execute("Quit", false); this.CheckResponseError(rs); //Server disconnect connection after server received quit command, so call Close method. this.Close(); return(rs); }
/// POP3メールサーバーへQUITコマンドを送信します。 /// <summary> /// Send quit command to pop3 server. /// POP3メールサーバーへQUITコマンドを送信します。 /// </summary> /// <returns></returns> public Pop3CommandResult ExecuteQuit() { Pop3CommandResult rs = null; String s = ""; this.EnsureOpen(); s = this.Execute("Quit", false); this.CheckResponseError(s); rs = new Pop3CommandResult(s); return(rs); }
/// 非同期でPOP3メールサーバーへQUITコマンドを送信します。 /// <summary> /// Send asynchronous quit command to pop3 server. /// 非同期でPOP3メールサーバーへQUITコマンドを送信します。 /// </summary> /// <param name="callbackFunction"></param> public void ExecuteQuit(Action <Pop3CommandResult> callbackFunction) { Action <String> md = responseString => { this.CheckResponseError(responseString); Pop3CommandResult rs = new Pop3CommandResult(responseString); callbackFunction(rs); }; this.EnsureOpen(); this.BeginExecute("Quit", false, md); }
/// POP3メールサーバーへPOP認証でログインします。 /// <summary> /// Log in to pop3 server by POP authenticate and return login success or failure as bool. /// POP3メールサーバーへPOP認証でログインします。 /// </summary> /// <returns></returns> public Boolean TryAuthenticateByPop() { Pop3CommandResult rs = null; if (this.EnsureOpen() == Pop3ConnectionState.Connected) { //ユーザー名送信 rs = this.Execute("user " + this.UserName, false); if (rs.Ok == true) { //パスワード送信 rs = this.Execute("pass " + this.Password, false); if (rs.Ok == true) { this._State = Pop3ConnectionState.Authenticated; } } } return(this._State == Pop3ConnectionState.Authenticated); }