How to suppress read receipt via IMAP? - exchange-server

I want implement a confirmation dialog for sending email read receipts in my application. The application uses IMAP to communicate with the mail server, which is currently restricted to a Microsoft Exchange Server 2010.
The receipt is obviously automatically send by the server when the \Seen flag is sent. So the IMAP commands would look something like this:
c1 LOGIN username password
c2 SELECT mailbox
c3 UID STORE 123 flags \Seen
(Btw. this stands in contrast to the solution found in another stackoverflow question, which said that setting the \Seen flag would not cause the Exchange Server to send receipts.)
Though how to handle the case when the user does not want to send a read receipt?
My initial idea was simply not to set the \Seen flag. Though this causes the server to automatically send a notification to the sender that the email was deleted without being read in case the message is deleted from the server.
Also marking the message with \Deleted and \Seen before expunging didn't help:
c1 UID STORE 123 flags (\Deleted \Seen)
c1 UID EXPUNGE 123
So how to explicitly suppress the read receipt message in case the user doesn't want to send one?

The only way to resolve this issue is to change the settings on the Exchange server itself. From the Exchange Management Shell, enter the following command:
set-ImapSettings -SuppressReadReceipt $true
You will then get no read receipts at all from Exchange for messages that are read via IMAP. It is then up to your application to generate the read receipts itself.
Technet also has more detailed info about set-ImapSettings.

Had the same issue with Exchange Server 2016.
In the mailbox I've set not to send read reciepts, but Thunderbird still did it.
You can supress read reciepts for a certain mailbox, not for all IMAP service:
Set-CASMailbox mailboxname -ImapSuppressReadReceipt $true -ImapUseProtocolDefaults $false

Related

Exchange server filters emails with certain urls in the body of a message and message send fails silently?

I have noticed something very odd about certain emails sent on outlook via an exchange server -- it appears if certain URLs and embedded in the message, message send will fail silently. The message will show up in the "sent items" folder, but it is never actually received by the recipient.
I checked in with GoDaddy who supports my Office365 subscription and they confirmed the behavior (they couldn't send successfully send it either, other me or others in their organization) but had no explanation for the behavior.
I have confirmed that the message sends normally if I use one of my gmail accounts through outlook or or an icloud email account. But my two exchange accounts (on different domains) neither send nor receive any email with this particular embedded url:
(Makes no different if sent in plaintext or not). And other emails, with either no urls or even other urls, send normally. Does Microsoft have a problem with foundation? Or with NFTs or something?
https://foundation.app/#NyanCat/foundation/219
This happens to be the NyanCat NFT that sold for ~$700K a while ago, but no idea what it is about simply the presence of the URL in the body of the message to cause it to fail silently when sent or received on an Exchange server. Not sure if impacts other Exchange servers besides GoDaddy's, but does can anybody explain how this even happening or why?

Stimulate recipients login mail exchange server?

I have the mail exchange server for pratice. And in this exchange server, I create a bulk recipients but still not logon anytime.
When I run Get-MailboxStatics it return an warning that:
WARNING: The user hasn't logged on to mailbox 'abc'
('76768175-4db5-4cbb-a36b-fdbde574ccbc'), so there is no data to
return. After the user logs on, this warning will no longer appear.
So with the large number recipients over 100, how can I use powershell code to stimulate that I already logon successful for all recipient in this server?
I would suggest you look at using LoadGen https://www.microsoft.com/en-au/download/details.aspx?id=40726 and that will generate load on the server which will populate all the log files for you to look at and test. (the 2013 version will run fine on Exchange 2016).

Can messages on an Exchange Server be tampered with by a client user?

Is ist possible for a user connected to Exchange Server via a client (Outlook Web App) to tamper with the e-mails in his mailbox (inbox, drafts, sent items ect.)?
Like modifying e-mail content (text, subject...) or properties (date, time, recipient...).
The core of the question is: If there is an e-mail in the user's sent items folder and this user did not have access to the Exchange Server (neither physically nor remotely, except for his standard user access), how sure (or probable) ist it, that this e-mail has really been sent on that date and time with exactly that text to exactly those recipients and that it had not been planted there at a later date?
Does it make a difference if that user only has access to his account via Outlook Web App or if he also has access via MS Outlook?
Outlook Web App is just a client so it won't allow you to modify a sent email or fake/import one as that is not a valid task for that client. You could do this at the API level using something like EWS or MAPI but that would require knowledge that most users won't have (but most likly they would have access to do it though). The Mitigation to this is if you have Litigation hold enabled https://technet.microsoft.com/en-us/library/ee861123%28v=exchg.141%29.aspx on the mailbox then any changes they did make to a message would be tracked and you would always be able to see the original version. Also if you looked at the message with a MAPI editor like MFCMapi or OutlookSpy there would be tell tails of somebody trying to fake a message like the Creation time not matching the sent time etc and other properties would most likly give it away.
One thing i would suggest is look at your Message Tracking log as they will tell you exactly what was sent and who is was sent to and the time https://technet.microsoft.com/en-us/library/bb124375%28v=exchg.160%29.aspx while these also aren't immutable it would take an administrative access to the server to modify.

Exchange 2013 NDR issue for not existed user in a mailing list

I have an Exchange 2013 server.
Faced with a strange issue of email delivery what I can not solve.
Exchange is rejecting email
if one of the recipients is not exist in a domain
Email will be rejected totally and sender will receive NDR for not existing user.
scenario:
Exchange mailboxes user#domain.com // valid user
user1#domain.com //**user mailbox is not exist**
Sending email from external domain to my exchange server:
TO: user#domain.com,user1#domain.com
Reciving NDR Remote Server returned '550 5.1.1 RESOLVER.ADR.RecipNotFound;
valid user didn't receive email also.
email is rejected
.
I start to google and found that How do I reject incoming email for unknown users in MS Exchange 2013?
exchange has a user validation feature that is enabled by default
I disable it on a console restart transport role.
Set-RecipientFilterConfig -RecipientValidationEnabled $false
run the same scenario again
user#domain.com, user1.domain.com
I receive NDR for not existing user.
but email was delivered to valid user.
Is it a normal behavior for exchange?
What is right by RFC deliver for valid users or reject email?
how it will affect our server hit the public spam list?
Does this not reduce our spam filter resistance?
Please advice.
Thank you.
It's normal for Exchange to send an NDR for non existing users. As you already said, this might also trigger some spam lists because you are sending out mails (NDR) to possible spam honey pots.
A better way to do this would be to have your external MTA (the server which accepts the mail from the internet) check the recipients and refuse to accept mail for non existent email addresses. This way you would never have to send out NDR reports, as the server trying to deliver mail would be informed that it cannot deliver and notifies the sender itself.

ORACLE 11g UTL_SMTP and "Reply To" / "On Behalf Of"

We are using the UTL_SMTP package in ORACLE 11g to send emails from our system on behalf of the users.
It all gets sent out through a common SENDER account to validate against the SMTP server.
We'd LIKE for the emails to appear to come from the user who sent them through the system.
Is there a way with the UTL_SMTP package to add one or both of the following properties to the emails sent:
REPLYTO - address to which replies to the message should be directed
ONBEHALFOF - I know Outlook lets you specify this when you send an email, then when the recipient gets it, it shows up as from smtp account on behalf of other user
I think the REPLYTO would be most important, so the recipients can respond to the users who sent the email, but it would be nice to have the ONBEHALFOF too.
Perusing the intellisense and documentation for the package though, I don't see any way to add either these. Is there any way?
See this AskTom question for a way to do it. If there's a header for the "On Behalf Of" field, you should be able to do both, but the "Reply-To" is in the examples.
Here's another example from Tim Hall's Oracle-Base site. See the "Multi Line Emails" section.
It pretty much amounts to brute force writing of the entire message envelope to the SMTP server.

Resources