autoreg-skills-max: initial public release (restored, redacted, hardened)

This commit is contained in:
baradok60915d52e8425
2026-10-20 02:16:32 +03:00
commit f58eafeb48
565 changed files with 60064 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
# Gmail IMAP/SMTP Full Code Templates
## IMAP — Full Fetch + Parse
```python
import imaplib, email
from email.header import decode_header
from email.utils import parsedate_to_datetime
def fetch_emails(user, app_pass, folder='INBOX', limit=10, search_criteria='ALL'):
"""Fetch last N emails from Gmail IMAP."""
m = imaplib.IMAP4_SSL('imap.gmail.com', 993)
m.login(user, app_pass)
m.select(folder)
_, data = m.search(None, search_criteria)
ids = data[0].split()[-limit:]
results = []
for mid in reversed(ids):
_, msg_data = m.fetch(mid, '(RFC822)')
raw = email.message_from_bytes(msg_data[0][1])
# Subject decode
subj_parts = decode_header(raw['Subject'])
subject = ''
for part, charset in subj_parts:
if isinstance(part, bytes):
subject += part.decode(charset or 'utf-8', errors='replace')
else:
subject += str(part)
# Body (text/plain first, fallback text/html)
body = ''
if raw.is_multipart():
for part in raw.walk():
ct = part.get_content_type()
if ct == 'text/plain':
body = part.get_payload(decode=True).decode('utf-8', errors='replace')
break
else:
body = raw.get_payload(decode=True).decode('utf-8', errors='replace')
results.append({
'id': int(mid),
'from': raw['From'],
'to': raw['To'],
'subject': subject,
'date': raw['Date'],
'body': body[:500],
})
m.logout()
return results
```
## SMTP — Full Send
```python
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def send_email(user, app_pass, to, subject, body, html=False):
"""Send email via Gmail SMTP."""
msg = MIMEMultipart() if html else MIMEText(body)
if html:
msg.attach(MIMEText(body, 'html'))
else:
msg = MIMEText(body)
msg['Subject'] = subject
msg['From'] = user
msg['To'] = to
with smtplib.SMTP_SSL('smtp.gmail.com', 465, timeout=10) as s:
s.login(user, app_pass)
s.send_message(msg)
```
## Sub-address filter pattern
```python
# Fetch only emails sent to specific sub-address
m.search(None, 'TO', '[REDACTED-NAME]+bot@gmail.com')
```
## Gmail IMAP folder list
```python
m = imaplib.IMAP4_SSL('imap.gmail.com')
m.login(user, app_pass)
_, folders = m.list()
for f in folders:
print(f.decode())
# Common: INBOX, [Gmail]/Sent Mail, [Gmail]/Drafts, [Gmail]/Spam, [Gmail]/Trash
```
## Connection test (quick)
```python
import socket
def test_gmail_imap():
"""Quick connectivity test — no login."""
try:
ip = socket.getaddrinfo('imap.gmail.com', 993, socket.AF_INET, socket.SOCK_STREAM)
print(f"DNS OK: {ip[0][4]}")
return True
except Exception as e:
print(f"DNS FAIL: {e}")
return False
```