我有一个从我的Gmail下载邮件的程序,我选择了单选按钮:为所有邮件启用POP(即使已经下载的邮件)
下载邮件后,我的Gmail会将上述状态更改为:自当前日期以来抵达的所有邮件都启用了POP
我没有实际更改单选按钮,但它接口就像它自动设置它只下载新邮件。
我需要我的窗户一直向下装载所有的时间。
如何在我的代码中设置Gmails必须始终启用所有下载?我不得不每次都选择单选按钮。
Windows服务
namespace EmailWindowsService
{
public partial class MyEmailService : ServiceBase
{
private static System.Timers.Timer aTimer; //Create a timer
public MyEmailService()
{
InitializeComponent();
if (!System.Diagnostics.EventLog.SourceExists("MySource")) // Log every event
{
System.Diagnostics.EventLog.CreateEventSource(
"MySource", "MyNewLog"); // Create event source can view in Server explorer
}
eventLogEmail.Source = "MySource";
eventLogEmail.Log = "MyNewLog";
// Timer Code
aTimer = new System.Timers.Timer(1 * 60 * 1000); // 60 seconds
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent); // Call time elapsed event
aTimer.Enabled = true;
// Timer Code
}
protected override void OnStart(string[] args)
{
eventLogEmail.WriteEntry("Started");
}
protected override void OnStop()
{
eventLogEmail.WriteEntry("Stopped");
}
protected override void OnPause()
{
eventLogEmail.WriteEntry("Paused");
}
protected override void OnContinue()
{
eventLogEmail.WriteEntry("Continuing");
}
protected override void OnShutdown()
{
eventLogEmail.WriteEntry("ShutDowned");
}
private void OnTimedEvent(object source, ElapsedEventArgs e)
{
clsRetriveEmail Emails = new clsRetriveEmail();
eventLogEmail.WriteEntry("Populateing database with mail"); // log event
Emails.EmailGetList(); // Call class
}
}
}
类
namespace EmailWindowsService
{
class clsRetriveEmail
{
public void EmailGetList()
{
using (Pop3Client objClient = new Pop3Client())
{
//Athentication This is stored in the app.config file
objClient.Connect(Properties.Settings.Default.mailServer, Properties.Settings.Default.port, Properties.Settings.Default.ssl); // mailserver eg gmail is pop.gmail.com, Port common ports 995 110 sll Security best to set to true
objClient.Authenticate(Properties.Settings.Default.username, Properties.Settings.Default.password); // Email Address and password
//Count Emails and begin Looping though them
int emailCount = objClient.GetMessageCount();
for (int i = emailCount; i >= 1; i--)
{
OpenPop.Mime.Message msg = objClient.GetMessage(i); //Get message Number. Message decleard as msg
//Set the values to throw into Database
int emailID = i;
String emailTo = Properties.Settings.Default.username;
String emailFrom = msg.Headers.From.Address;
String emailSubject = msg.Headers.Subject;
DateTime emailSentDate = msg.Headers.DateSent;
// The connection String can be changed in the app.config file
// Connect to database
using (var conn = new SqlConnection(Properties.Settings.Default.dbConnectionString))
using (var cmd = conn.CreateCommand())
{
// Writes to database (local) instance
conn.Open();
cmd.CommandText = "EmailLogFill";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@id", emailID);
cmd.Parameters.AddWithValue("@to", emailTo);
cmd.Parameters.AddWithValue("@from", emailFrom);
cmd.Parameters.AddWithValue("@subject", emailSubject);
cmd.Parameters.AddWithValue("@date", emailSentDate);
cmd.ExecuteNonQuery();
}
}
}
}
}
}
答案 0 :(得分:0)
您不需要重新启用单选按钮,当pop客户端下载邮件时,其他pop客户端无法查看。通过使用最近的模式,前景如何。
尝试这不是你的所有邮件,而是过去30天。
只需将 recent> 添加到您的用户名,例如最近:Me@gmail.com。
最近模式获取最近30天的邮件,无论邮件是否已经发送到另一个POP1客户端。
链接备份。
http://support.google.com/mail/bin/answer.py?hl=en&answer=47948