We have a SMTP Cluster (Microsoft SMTP Service) that we would like to check for mailflow every 5 minutes.
What we would like is to send a mail every 5 minutes through every node to a mailbox - check the mailbox for received mails and see how long it took.
We would like to use Powershell to do the sendmail function and we got that in place.
Our obstacle is how to read mails automatically? We have tested that we could use Gmail as receiving mailbox and can read mails through Powershell (Feeds / Atom) but that doesn't mark the mails as read in the mailbox.
We have own Hosted Exchange, maybe we could use that for receiving mail?
Any thoughts?
Best regards
If you have Exchange mailboxes available, you can script reading and manipulating email (including marking as Read) with Powershell using the EWS managed api:
http://msdn.microsoft.com/en-us/library/dd633710(v=EXCHG.80).aspx
Glen Scales has many good articles and code samples for using it on his blog:
http://msdn.microsoft.com/en-us/library/dd633710(v=EXCHG.80).aspx
Related
I need to sync sent mails with the sent folders of mail servers, for the users to see at future moments. I can send mails using all these 3 ways, SMTP, CDO and Microsoft Outlook Object(MOO); out of which I can only see my sent mails with MOO. Now the problem is, Not all clients are using outlook, and thus its more impractical to use this.
Out of exercise, I had also used MAPI to send mails, but that don't send HTML body. Also I looked over this topic Microsoft Sent folder, but that don't solve my problem.
So is there anyway, I can send mail with HTML body and sync the sent mail with Sent Folder. ?
Thanks.
You can do that with Extended MAPI (C++ or Delphi), but you probably mean Simple MAPI.
If you are connecting to an Exchange mailbox, EWS is another option.
I am Creating an application in c# . I have to know how can I know the status of the sended email.The status May be.
4. Track sent emails to determine if they were:
4.1 delivered
4.2 opened
4.3 recipient opt-out
4.4 bounced (with the reason for the bounce)
4.5 time/date sent
4.6 which links in the email were clicked (and time/date they were clicked)
4.7 IP address, if user clicked any links in the email
Should I use Any API or Dll or something else.Please help .Any Help will be Appreciated.
If you program your application to send mail through a hosted SMTP server like http://www.sendgrid.com or http://www.ultrasmtp.com, you can access the delivery status of messages that you've sent.
There is no easy way to do what you want. Actually this status can be tracked by your SMTP server itself and if you are using some third-party SMTP server like GMail or any corporate server, I 'm afraid they won't give you access to those information without using a authenticated client.
From your C# program, if the SmtpClient.Send() method returns true, you can assume the mail has been delivered to the SMTP server. If in case, the delivary fails, you should receive a mail to the outbound mail ID's inbox. If you want to make outbound mails appear in your outbox, you should configure IMAP/POP3 configurations accordingly.
There is no API or DLL available in exact form you want, as far as I know. You can try some other way like tracking a hash or embedded image in the mail-body from your server. But these are not reliable way as most mordern Messaging services have counter-measures for this.
I have an application that run on server,
I want that my application could received mail in order to start some function.
I would like to know what should I need to do in order to have this capability?
Do I need to build SMTP server? if so, how should I do it?
You can try: http://www.lumisoft.ee/lsWWW/download/downloads/ .
There is SMTP server component what you can use to recieve emails.
Or alternatively there is SMTP server written in C#, you can write message filter for server.
In filter you can access incoming message and do what ever you want with it.
--- Yes also as others suggested will work ok too, you just run simple mail server and get emails by pop3 or imap. Pop3 and Imap components and example applications also included in same link.
You can use IIS6 to receive email and drop it into a specified folder. Your app can then pick up those emails and do whatever it needs to with them.
Active the SMTP service in IIS. It drops emails in the C:\inetpub\smtproot\drop folder IIRC.
Then you just need a Mime parser to read the EML files. I used the one in Lumisoft when I did the same thing.
You could use any Mailserver to receive the mail and have your application check the poxtbox every 1 minute to receive the mails.
When any mail arrived (or special subject as you need), you could execute your code.
For IMAP you could look at this Library
I have previously had some success using the Chilkat POP3 component to programmatically monitor a POP3 account for incoming mail.
I've searched online to see if ELMAH can send daily emails and from the reading I've done, the developers say to use the RSS feed instead of emails. See this post for details. My company wants a daily email sent using ELMAH. Does anyone know if this is possible or of any workarounds for sending daily emails with ELMAH?
Where do your log your errors to? Database/ File / RAM? I would imagine that, for all of the back-end storages supported by ELMAH, except RAM, you could easily write a console app to send this daily email summary that you want.
For what is worth, look at the System.Net.Mail.MailMessage and System.Net.Mail.SmtpClient classes on MSDN.
I have a job that runs which sends out emails to our users to which starts off a work flow process in our company. Periodically, a user will swear up and down that they didn't receive the email - though, when we go to the mail administrator to pull an exchange report, 10 times out of 10 it's in their deleted items. :P
I'd like to be able to programmatically verify that messages sent via .net C# (System.Net.Mail I think) reached the user's mail box.
It's exchange 2007 and all messages are internal.
You can't with System.Net.Mail. You'll have to dig through Exchange's APIs to determine if an email is present in someone's email account.
http://support.microsoft.com/kb/813349
Set an account for catching all bounce backs. In this way you will know which ones reached and which ones did not. This is the best way to ensure emails reached.
Alternatively you can add read reciepts via message headers(by setting the Disposition-Notification-To). but again, user can chose not to read it...
I see two ways to do what you want:
Send emails with "delivery confirmation" On (not "read receipt", this can be dismissed by the user as CoddeToGlory said). Then it's jut a matter of monitoring the mailbox that receives these confirmations via any way it's appropiate to you: Exchange Web Services, Outlook+COM or VBA, MAPI, ...
Use the powershell interface to Exchange and capture the output of Get-MessageTrackingLog looking for StoreDriver + Deliver events.