1
你们看到这个C#代码的任何问题吗?它从Gmail电子邮件通知,然后打印到CMD多少未读邮件正在等待:我的Gmail通知程序代码有什么问题?
Unread Mails: 10
Unread Mails: 10
,然后发送了多少邮件通过串行过。但在它说“未读邮件:”两次我得到:
Operation Timed Out.
Unread Mails: 0
它重复。
Iv'e在不同的计算机和互联网服务提供商(ISP)上试用过它,所以它在代码中是绝对的东西。 C#程序。我也曾尝试更改Thread.Sleep值,以便在再次执行此操作之前花费更长时间,但仍然无效。 谢谢!
public static void Main(string[] args)
{
try
{
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
port.Open();
string Unreadz = "0";
while (true)
{
Unreadz = CheckMail();
Console.WriteLine("Unread Mails: " + Unreadz);
if (Convert.ToInt32(Unreadz) < 10) port.Write("0" + Unreadz);
else port.Write("" + Unreadz);
System.Threading.Thread.Sleep(10000);
}
} catch (Exception ee) { Console.WriteLine(ee.Message); }
}
public static string TextToBase64(string sAscii)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] bytes = encoding.GetBytes(sAscii);
return System.Convert.ToBase64String(bytes, 0, bytes.Length);
}
public static string CheckMail()
{
string result = "0";
try
{
var url = @"https://gmail.google.com/gmail/feed/atom";
var USER = "USER";
var PASS = "PASS";
var encoded = TextToBase64(USER + ":" + PASS);
var myWebRequest = HttpWebRequest.Create(url);
myWebRequest.Method = "POST";
myWebRequest.ContentLength = 0;
myWebRequest.Headers.Add("Authorization", "Basic " + encoded);
var response = myWebRequest.GetResponse();
var stream = response.GetResponseStream();
XmlReader reader = XmlReader.Create(stream);
while (reader.Read())
if (reader.NodeType == XmlNodeType.Element)
if (reader.Name == "fullcount")
{
result = reader.ReadElementContentAsString();
return result;
}
} catch (Exception ee) { Console.WriteLine(ee.Message); }
return result;
}
}
}