1

SMTP サーバーから添付ファイルのサイズを取得する際に問題があります。

たとえば、ユーザーが からメールを送信したい場合smtp.gmail.com、どのくらいのサイズの添付ファイルを添付できるかを知る必要があります。

EHLOそれで、コマンドをsmtpサーバーに送信したいのですが、問題があります。

private long GetSizeAttachament()
{
    long Size = 0; 
    TcpClient smtpTest = new TcpClient();

    try
    {
        smtpTest.Connect(conf.SmtpServer, 25);
        if (smtpTest.Connected)
        {
            NetworkStream ns = smtpTest.GetStream();
            StreamReader clientStreamReader = new StreamReader(ns);
            StreamWriter clientStreamWriter = new StreamWriter(ns);
            clientStreamReader.ReadLine();

            clientStreamWriter.WriteLine("EHLO somehost");
            while (true)
            {
                string line = clientStreamReader.ReadLine();
                if(line.StartsWith("250"))
                {
                    if (Regex.Match(line, "250-SIZE (.*?)$").Groups.Count > 1)
                    {
                        Size = long.Parse(Regex.Match(line, "250-SIZE (.*?)$").Groups[1].Value);
                        break;
                    }
                }
            }


        }
    }
    catch
    {

    }

    smtpTest.Close();
    return Size;
}

conf.SmtpServersmtp サーバー名smtp.gmail.comです。

このコードはフリーズしています

string line = clientStreamReader.ReadLine();

理由はありますか?

4

0 に答える 0