Нажав кнопку отправки

1
def mailto_url(to=None,subject=None,body=None,cc=None):
    url = "mailto:" + urllib.quote(to.strip(),"@,")
    sep = "?"
    if cc:
        url+= sep + "cc=" + urllib.quote(cc,"@,")
        sep = "&"
    if subject:
        url+= sep + "subject=" + urllib.quote(subject,"")
        sep = "&"
    if body:
        body="\r\n".join(body.splitlines())
        url+= sep + "body=" + urllib.quote(body,"")
        sep = "&"
    return url
import urllib
import webbrowser
url = mailto_url('email address', 'subject', 'message body')
webbrowser.open(url,new=1)

У меня есть код выше, чтобы вывести почтовый клиент по умолчанию. Но мне нужно автоматизировать отправку электронной почты. Есть ли способ использовать script для нажатия кнопки "Отправить"?

  • 0
    Почему вы пытаетесь автоматизировать почтовый клиент с графическим интерфейсом, а не просто отправлять сообщение с помощью Python? Как минимум, вам почти наверняка нужно знать, какую ОС и почтовый клиент использует ваш пользователь. Например, на Mac это довольно легко сделать с помощью Applescript.
  • 1
    Сценарий только для меня, хотя. Итак, вы говорите, что мне нужно понять GUI почтового клиента? И можно ли запустить Applescript на windows?
Теги:
thunderbird

3 ответа

1

Зачем вам нужно отправить сообщение через клиент GUI? Клиент разработан как интерфейс между протоколами электронной почты и человеком с мышью и клавиатурой, а не с вашим Python script.

Вы можете использовать модуль smtplib для отправки электронной почты непосредственно с Python. Если вам нужна запись об этом в Thunderbird, возможно, вы могли бы использовать ее для себя.

0

Сохраните это в файле, например sendmail.vbs

dim sendKeyObj
Set sendKeyObj = CreateObject("WScript.Shell")
sendKeyObj.SendKeys "^{ENTER}"

и использовать python для запуска этого script из командной строки с помощью

cscript /nologo "C:\path\to\sendmail.vbs"

Итак, это было бы в Python

import os
os.system("cscript /nologo \"C:\\path\\to\\sendmail.vbs\"")

(Надеюсь, у меня все получилось). Возможно, вы захотите использовать модуль подпроцесса вместо os. VBScript действительно только нажимает кнопку "Отправить" в Thunderbird. Я думаю, что это работает только в том случае, если почта e- может появиться в новом окне перед всем остальным. Я использую этот set- для отправки счетов-фактур и т.п.

0

Если вам нужно/нужно сделать это с помощью Python, там может быть полезен инструмент автоматизации Windows GUI под названием pywinauto.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню