Comments (9)
from go-imap.
Right, so it's a recommendation from Yahoo, but is there any real gain for clients which use the ID extension?
@emersion Yes. I reached out to Yahoo, and they said if I set IMAP ID, they can detect the origin of the IMAP request, and can raise the rate limit. Also, if we do not pass the IMAP ID, they can potentially lock the Yahoo account if they see too many IMAP connections.
from go-imap.
Right… I've been holding off on that one because I think it's harmful: it enables clients and servers to implement implementation-specific workarounds instead of following the standard.
Can you explain your use-case?
from go-imap.
The use case is Yahoo. Yahoo advise users to use id command to identify themselves. Here is the quote:
Client Indentification
The Verizon Media IMAP server supports the IMAP ID command https://www.ietf.org/rfc/rfc2971.txt to gather statistics and facilitate troubleshooting. An IMAP client connecting to the Verizon Media servers should issue the ID command with the following attributes: NAME, VERSION, OS, OS-VERSION.
NAME should be the partner name or the ID assigned during the approval process.
example: "name" "iPhone Mail"
"name" "com.android.email"
"name" "yahoo.com"
VERSION is the version of that client. It's useful when watching for changes in behavior OS & OS-VERSION are additional info for determining client environment specific issues.
A full ID command looks like this:
C: a007 ID ("name" "<'client name'>" "version" "<'client version'>" "os" "<'client os'>" "os-version" "<'client os version'>")
https://developer.yahooinc.com/imap-smtp/
from go-imap.
It is also documented here: https://senders.yahooinc.com/developer/documentation/#imap-features
from go-imap.
Right, so it's a recommendation from Yahoo, but is there any real gain for clients which use the ID extension?
from go-imap.
This is the email Yahoo sent us. Basically they ask me to pass IMAP ID as part of their IMAP agreement:
from go-imap.
Alright. That's quite a misuse of the ID command, but oh well.
from go-imap.
Thanks for looking into this 🙏
from go-imap.
Related Issues (20)
- v2: client: support custom tls.Config{} in DialTLS() and DialStartTLS() HOT 2
- Implement limits for parser HOT 1
- v2: client: Close race conditions HOT 4
- v2 client: Status with ststusOption nil hangs HOT 1
- v2 STORE flags not returned HOT 2
- v2 DebugWriter breaks LOGIN or any imap command HOT 2
- v2 Invokes Client.conn.Close multiple times producing errors HOT 1
- v1 branch overwritten? HOT 2
- Set timeout for Dial() HOT 1
- Cannot connect to Cyrus IMAP 2.5 - hangs on login HOT 4
- Idle client v2 stops receiving new emails in some time. HOT 5
- The receiving mail runs on the cloud server
- Raw UTF-8 is rejected by utf7 package when UTF8=ACCEPT is enabled
- utf7: simplify implementation
- Disable UTF-7 encoding for IMAP4rev2
- v1: connection hangs forever in "handleGreetAndStartReading" HOT 1
- v2: fails to parse imap server response HOT 2
- client: Dovecot startup failure hangs test HOT 1
- FETCH command did not return any message HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-imap.