public void GetMail(int no)
{
if(_socket == (IntPtr)ErrorSocket)
{
throw new InvalidOperationException();
}
if(_path != null)
{
if(_path != "" && !Directory.Exists(_path))
{
throw new DirectoryNotFoundException(_path);
}
}
if(no <= 0) {
throw new ArgumentOutOfRangeException();
}
if((_flag & SuspendNext) != 0) {
_err = Pop3GetMailEx(_socket, no, _subject, _date, _from, _header, _body, _path, _filename, _temp, _flag);
} else {
SetHeaderSize();
_subject = new StringBuilder(_header_size);
_date = new StringBuilder(_header_size);
_from = new StringBuilder(_header_size);
_header = new StringBuilder(_header_size);
Options.FileNameMax = MaxPath;
_filename = new StringBuilder(MaxPath);
if(_body_size < 0)
{
GetSize(no);
}
if(_body_size > 0)
{
_body = new StringBuilder(_body_size);
if(_flag != 0) {
_err = Pop3GetMailEx(_socket, no, _subject, _date, _from, _header, _body, _path, _filename, _temp, _flag);
}
else
{
_err = Pop3GetMail(_socket, no, _subject, _date, _from, _header, _body, _path, _filename);
}
}
}
if(_err != ErrorSuspendAttachmentFile)
{
_body_size = -1;
if(_filename.Length > 0)
{
_filename_list = _filename.ToString().Split(Options.SplitChar);
}
else
{
_filename_list = null;
}
if(Options.SaveHtmlFile == Options.SaveHtmlFileOn) {
GetHeaderField("X-NMAIL-HTML-FILE:");
_html_file = _field;
}
if(Options.SaveRfc822File != Options.SaveRfc822FileOff) {
GetHeaderField("X-NMAIL-RFC822-FILE:");
_rfc822_file = _field;
}
}
if(_err < 0 && _err != ErrorSuspendAttachmentFile) {
throw new nMailException("GetMail: " + Options.ErrorMessage, _err);
}
}