Hi all
I'm wondering if there is a way to hide, handle the exception I get when running my "Reply to an email" project. I'm using it to reply with a wifi token when a mail is sent to certain email address. See the code below (may not be the prettiest one yet) :
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Timer MyTimer = new Timer();
MyTimer.Interval = (1 * 15 * 1000); // 30 secs
MyTimer.Tick += new EventHandler(MyTimer_Tick);
MyTimer.Start();
}
private void MyTimer_Tick(object sender, EventArgs e)
{
mailVoucher();
}
private void mailVoucher() //Mail virkni
{
IMail original = GetFirstMessage();
ReplyBuilder replyBuilder = original.Reply();
replyBuilder.HtmlReplyTemplate = @"
<html>
<head>
<title>[Subject]</title>
</head>
<body>
[Html]
</body>
</html>";
replyBuilder.SubjectReplyTemplate = "Gestapassi";
//Retreive-ar voucherinn
string voucher = getVoucher();
replyBuilder.Html = "Lykilorð á OM_GUEST er : " + voucher;
MailBuilder builder = replyBuilder.Reply(
new MailBox("xxxxxx", "xxxxxx"));
IMail reply = builder.Create();
using (Smtp smtp = new Smtp())
{
smtp.ConnectSSL("outlook.office365.com");
smtp.UseBestLogin("xxxxx@xxxx", "xxxxxxxx");
smtp.SendMessage(reply);
smtp.Close();
}
}
private IMail GetFirstMessage()
{
IMail email;
using (Imap imap = new Imap())
{
imap.ConnectSSL("outlook.office365.com");
imap.UseBestLogin("xxxxx@xxxx", "xxxxxx");
imap.SelectInbox();
List<long> uids = imap.Search(Flag.Unseen);
if (uids.Count == 0)
throw new Exception("There are no messages");
var eml = imap.GetMessageByUID(uids[0]);
email = new MailBuilder().CreateFromEml(eml);
imap.Close();
}
return email;
}
}
I'm running this on a server and keep getting the exception box on-screen. When I ignore it (don't click quit/continue) the program stills runs as expected.
Best regards
Steini Ben