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();
理由はありますか?