从smtp服务器获取附件大小

时间:2013-04-19 13:06:34

标签: c# smtp size email-attachments

我从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.SmtpServer是smtp服务器名称 - 例如smtp.gmail.com

此代码冻结在

string line = clientStreamReader.ReadLine();

任何想法为什么?

0 个答案:

没有答案