myl-discovery 0.6.0__py3-none-any.whl → 0.6.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: myl-discovery
3
- Version: 0.6.0
3
+ Version: 0.6.2
4
4
  Summary: email autodiscovery
5
5
  Author-email: Philipp Schmitt <philipp@schmitt.co>
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -829,3 +829,4 @@ myl-discovery is licensed under the [GNU General Public License v3.0](LICENSE).
829
829
 
830
830
  - https://wiki.mozilla.org/Thunderbird:Autoconfiguration:ConfigFileFormat
831
831
  - https://datatracker.ietf.org/doc/html/rfc6186
832
+ - https://developers.google.com/gmail/imap/imap-smtp
@@ -0,0 +1,10 @@
1
+ myldiscovery/__init__.py,sha256=L_XVC06ZVdjhnV5up1MBnywTuGUIyjt8PUoQDUOzfAk,381
2
+ myldiscovery/__main__.py,sha256=5BjNuyet8AY-POwoF5rGt722rHQ7tJ0Vf0UFUfzzi-I,58
3
+ myldiscovery/discovery.py,sha256=MPNFGmkxy_XRk-24E-Rrc4O3Y0OhuJVoqSwKzrNfjiQ,9330
4
+ myldiscovery/main.py,sha256=peCDXqhrYtygAOW9gB9T_rvotSc9vI_th9AdS2WAjw4,2482
5
+ myl_discovery-0.6.2.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
6
+ myl_discovery-0.6.2.dist-info/METADATA,sha256=7ic5cQ49xNEfeTH2AOiHAiWjvX-jw09jUlvYrHIQrqw,45214
7
+ myl_discovery-0.6.2.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
8
+ myl_discovery-0.6.2.dist-info/entry_points.txt,sha256=nyyAyvgvu6iO9mPEA6uVrPfd0lIrUyo9AQWeH2asEY0,52
9
+ myl_discovery-0.6.2.dist-info/top_level.txt,sha256=v_h72JexaacqBNY6iOMD9PpGg8lnGoL-pkmUIzxdiVU,13
10
+ myl_discovery-0.6.2.dist-info/RECORD,,
myldiscovery/discovery.py CHANGED
@@ -280,14 +280,14 @@ def autodiscover_port_scan(server):
280
280
  }
281
281
 
282
282
 
283
- def autodiscover_autoconfig(domain):
283
+ def autodiscover_autoconfig(domain, insecure=False):
284
284
  autoconfig = autodiscover_txt(domain)
285
285
 
286
286
  if not autoconfig:
287
287
  LOGGER.warning("Failed to autodiscover using TXT records")
288
288
  return
289
289
 
290
- res = requests.get(autoconfig)
290
+ res = requests.get(autoconfig, verify=not insecure)
291
291
  res.raise_for_status()
292
292
 
293
293
  try:
@@ -297,12 +297,15 @@ def autodiscover_autoconfig(domain):
297
297
  return parse_autodiscover(res.text)
298
298
 
299
299
 
300
- def autodiscover(email_addr, username=None, password=None):
300
+ def autodiscover(email_addr, username=None, password=None, insecure=False):
301
301
  domain = email_addr.split("@")[-1]
302
+
302
303
  if not domain:
303
304
  raise ValueError(f"Invalid email address {email_addr}")
305
+
304
306
  if domain == "gmail.com":
305
307
  LOGGER.debug("Gmail detected, skipping autodiscover")
308
+ # https://developers.google.com/gmail/imap/imap-smtp
306
309
  return {
307
310
  "imap": {
308
311
  "server": "imap.gmail.com",
@@ -318,7 +321,7 @@ def autodiscover(email_addr, username=None, password=None):
318
321
  },
319
322
  }
320
323
 
321
- res = autodiscover_autoconfig(domain)
324
+ res = autodiscover_autoconfig(domain, insecure=insecure)
322
325
 
323
326
  if not res:
324
327
  res = autodiscover_srv(domain)
myldiscovery/main.py CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  import argparse
5
5
  import logging
6
+ from importlib.metadata import PackageNotFoundError, version
6
7
 
7
8
  from rich import print_json
8
9
  from rich.console import Console
@@ -11,11 +12,22 @@ from rich.table import Table
11
12
 
12
13
  from myldiscovery import autodiscover
13
14
 
15
+ try:
16
+ __version__ = version("myl-discovery")
17
+ except PackageNotFoundError:
18
+ pass
19
+
14
20
  LOGGER = logging.getLogger(__name__)
15
21
 
16
22
 
17
23
  def parse_args():
18
24
  parser = argparse.ArgumentParser()
25
+ parser.add_argument(
26
+ "-V",
27
+ "--version",
28
+ action="version",
29
+ version=f"%(prog)s {__version__}",
30
+ )
19
31
  parser.add_argument("-j", "--json", action="store_true", default=False)
20
32
  parser.add_argument("-d", "--debug", action="store_true", default=False)
21
33
  parser.add_argument(
@@ -24,6 +36,9 @@ def parse_args():
24
36
  parser.add_argument(
25
37
  "-p", "--password", required=False, help="Password (Exchange only)"
26
38
  )
39
+ parser.add_argument(
40
+ "--insecure", required=False, action="store_true", default=False
41
+ )
27
42
  parser.add_argument("EMAIL")
28
43
  return parser.parse_args()
29
44
 
@@ -40,7 +55,10 @@ def main():
40
55
 
41
56
  try:
42
57
  res = autodiscover(
43
- args.EMAIL, username=args.username, password=args.password
58
+ args.EMAIL,
59
+ username=args.username,
60
+ password=args.password,
61
+ insecure=args.insecure,
44
62
  )
45
63
  if args.json:
46
64
  print_json(data=res)
@@ -1,10 +0,0 @@
1
- myldiscovery/__init__.py,sha256=L_XVC06ZVdjhnV5up1MBnywTuGUIyjt8PUoQDUOzfAk,381
2
- myldiscovery/__main__.py,sha256=5BjNuyet8AY-POwoF5rGt722rHQ7tJ0Vf0UFUfzzi-I,58
3
- myldiscovery/discovery.py,sha256=eSvTFEwzJU6qf3PLhXxn1xZs9SJlPdAn5SJUMYpmcco,9195
4
- myldiscovery/main.py,sha256=BQlblFEsPx3-JSXImWc1i2SsRED2IiEWD3cEPTszwac,2034
5
- myl_discovery-0.6.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
6
- myl_discovery-0.6.0.dist-info/METADATA,sha256=Nu0m2olCS_9eAMuuJ2ZyDcVDzoF8kUxAq9xi0ZWjGkc,45161
7
- myl_discovery-0.6.0.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
8
- myl_discovery-0.6.0.dist-info/entry_points.txt,sha256=nyyAyvgvu6iO9mPEA6uVrPfd0lIrUyo9AQWeH2asEY0,52
9
- myl_discovery-0.6.0.dist-info/top_level.txt,sha256=v_h72JexaacqBNY6iOMD9PpGg8lnGoL-pkmUIzxdiVU,13
10
- myl_discovery-0.6.0.dist-info/RECORD,,