А1: потому что вы строите линию, и я подозреваю, что х не отсортирован.
А2. См. Вопрос 1.
A3: используйте следующее и посмотрите, как это работает (поскольку вы используете numpy):
x = np.array(x)
y = np.array(y)
plt.plot(x[x.argsort()], y[x.argsort()], label='Hello,World')
РЕДАКТИРОВАТЬ: если у вас много шума, вы можете попробуйте построить меньше точек, например:
plt.plot(x[x.argsort()][::3], y[x.argsort()][::3], label='Hello,World') #each 3 points
или построить скользящее среднее (см. здесь )
Вы можете попробовать сказать EHLO
вашему серверу и посмотреть, отвечает ли он 250 OK
. Конечно, этот тест не гарантирует, что вам удастся отправить письмо позже, но это хороший показатель.
А вот пример:
class Program
{
static void Main(string[] args)
{
using (var client = new TcpClient())
{
var server = "smtp.gmail.com";
var port = 465;
client.Connect(server, port);
// As GMail requires SSL we should use SslStream
// If your SMTP server doesn't support SSL you can
// work directly with the underlying stream
using (var stream = client.GetStream())
using (var sslStream = new SslStream(stream))
{
sslStream.AuthenticateAsClient(server);
using (var writer = new StreamWriter(sslStream))
using (var reader = new StreamReader(sslStream))
{
writer.WriteLine("EHLO " + server);
writer.Flush();
Console.WriteLine(reader.ReadLine());
// GMail responds with: 220 mx.google.com ESMTP
}
}
}
}
}
А вот список кодов , которые следует ожидать.
Вот хороший инструмент с открытым исходным кодом (делает больше, чем MX): http://www.codeproject.com/KB/IP/DNS_NET_Resolver.aspx
Вы можете открыть порт (25) с сокетом или TcpClient
и посмотрите, отвечает ли он.
Откройте сокет-соединение с сервером smtp на порту 25 и посмотрите, что вы получили. В противном случае нет сервера smtp.