问题描述
I have a program that downloads mails from my Gmail, i have selected the radio button : Enable POP for all mail (even mail that's already been downloaded)
After i download my mail my Gmail changes the status above to: POP is enabled for all mail that has arrived since current Date
I did not physical change the radio buttons but it seams like it auto sets it to download only new mail.
I need my windows to down load all my all the time.
How can i set in my code that Gmails must enable all downloads all the time? with out me having to go re select the radio button every time.
Windows Service
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
}
}
}
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();
}
}
}
}
}
}
You don't need to re enable the radio button, when a pop client downloads the mail, it cant be view by other pop clients. How outlook does this is by using the recent mode.
Try this its not all your mail but the last 30 days.
Just Add recent: to your username e.g recent:Me@gmail.com.
Recent mode fetches the last 30 days of mail, regardless of whether it's been sent to another POP1 client already.
Link to back it up.
http://support.google.com/mail/bin/answer.py?hl=en&answer=47948
这篇关于如何从 C# 代码重新启用 Gmail 中的弹出功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!