Prv8 Shell
Server : Apache
System : Linux ecngx264.inmotionhosting.com 4.18.0-553.77.1.lve.el8.x86_64 #1 SMP Wed Oct 8 14:21:00 UTC 2025 x86_64
User : lonias5 ( 3576)
PHP Version : 7.3.33
Disable Function : NONE
Directory :  /usr/lib/imh-whmapi/venv/lib/python3.13/site-packages/rads/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/lib/imh-whmapi/venv/lib/python3.13/site-packages/rads/_email.py
"""Functions for sending emails"""

import smtplib
import platform
import pwd
import os
from typing import Literal, overload
from email.utils import formatdate
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from ._tickets import make_ticket


@overload
def send_email(
    to_addr: str | list[str],
    subject: str,
    body: str,
    html: str | None = None,
    sender: str | None = None,
    ssl: bool = False,
    server: tuple[str, int] = ('localhost', 0),
    login: tuple[str, str] | None = None,
    errs: Literal[False] = False,
) -> bool: ...


@overload
def send_email(
    to_addr: str | list[str],
    subject: str,
    body: str,
    html: str | None = None,
    sender: str | None = None,
    ssl: bool = False,
    server: tuple[str, int] = ('localhost', 0),
    login: tuple[str, str] | None = None,
    errs: Literal[True] = True,
) -> None: ...


def send_email(
    to_addr: str | list[str],
    subject: str,
    body: str,
    html: str | None = None,
    sender: str | None = None,
    ssl: bool = False,
    server: tuple[str, int] = ('localhost', 0),
    login: tuple[str, str] | None = None,
    errs: bool = False,
):
    """Sends an email

    Args:
        to_addr: destination email address(es)
        subject: subject line of email to send
        body: plaintext body of email
        html: HTML version of the email
        sender: sender's email address. user@fqdn if unprovided
        ssl: whether to use SMTPS
        server: (host, port) to connect to
        login: (user, pass) to connect as
        errs: if True, raise OSError if sending fails. If False, return
            a bool for success/fail. Defaults to False.
    """
    if sender is None:
        sender = f'{pwd.getpwuid(os.getuid()).pw_name}@{platform.node()}'
    if isinstance(to_addr, str):
        queues = (
            "str@imhadmin.net",
            "sadmin@imhadmin.net",
            "reclamations@imhadmin.net",
        )
        if to_addr in queues and not errs:
            try:
                make_ticket(
                    dest=to_addr, body=body, sender=sender, subject=subject
                )
            except Exception:
                return False
            return True
        to_addr = [to_addr]
    msg = MIMEMultipart('alternative')
    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = ", ".join(to_addr)
    msg['Date'] = formatdate()
    if isinstance(body, str):
        msg.attach(MIMEText(body, 'plain', 'UTF-8'))
    else:
        msg.attach(MIMEText(body, 'plain'))
    if html:
        if isinstance(html, str):
            msg.attach(MIMEText(html, 'html', 'UTF-8'))
        else:
            msg.attach(MIMEText(html, 'html'))
    smtp_class = smtplib.SMTP_SSL if ssl else smtplib.SMTP
    try:
        smtp_obj = smtp_class(server[0], server[1])
        if login:
            smtp_obj.login(login[0], login[1])
        smtp_obj.sendmail(sender, to_addr, msg.as_string())
    except OSError:
        if errs:
            raise
        return False
    if errs:
        return None
    return True


send_email.__module__ = 'rads'

@StableExploit - 2025