Запустите настольную почтовую программу и начните пустое электронное письмо с python - PullRequest
0 голосов
/ 20 сентября 2019

Я пытаюсь запустить приложение локальной почты, Outlook 365 в Windows и Mail в MacOS и запустить пустое электронное письмо со столбцом (To:), заполненным из запроса к базе данных.

В идеале этобудет выглядеть примерно так:

def email_create():
     if MacOS:
        open Mail.App
        To: = [sql statement]
     if Windows
        open Outlook.application
        To: = [sql statement]

РЕДАКТИРОВАТЬ: С помощью @spYder ниже, я хотел просто опубликовать мой конечный продукт, который, кажется, отлично работает.Еще раз спасибо @ spYder.

import webbrowser

    def send_email_command():
        sql = "SELECT EMAIL_PRIMARY FROM USER_INFORMATION"
        cursor.execute(sql)
        results = ','.join([item for row in [list(i) for i in (cursor.fetchall())] for item in row]) # creates the comma separated list from my query
        webbrowser.open('mailto: ' + results, new=1)

Для внешнего вида Windows вы просто замените ',' на ';'из-за способа разделения адресов электронной почты.Мой последний шаг - мне просто нужно выяснить, как определить, использует ли пользователь MacOS или Windows.

1 Ответ

0 голосов
/ 20 сентября 2019

Если вам действительно нужно открыть Outlook, возможно, это будет дубликат Открытие Outlook с Python

os.startfile("outlook")

Для macOS:

        subprocess.call(["open", filename])

Вкл.с другой стороны, если просто отправка электронного письма помогает, проверьте smtplib.

Чтобы начать пустое сообщение, используйте следующее:

import webbrowser
webbrowser.open('mailto:', new=1)

Для написания электронного письма вы можете использовать smtplib (как упомянуто выше) + проверка: https://realpython.com/python-send-email/#sending-a-plain-text-email

Шаг 1:

import smtplib, ssl

port = 465  # For SSL
password = input("Type your password and press enter: ")

# Create a secure SSL context
context = ssl.create_default_context()

with smtplib.SMTP_SSL("smtp.gmail.com", port, context=context) as server:

server.login("my@gmail.com", password)
# TODO: Send email here

Шаг 2:

server.sendmail(sender_email, receiver_email, message)

sender_email = "my@gmail.com"
receiver_email = "your@gmail.com"
message = """\
Subject: Hi there

This message is sent from Python."""

# Send email here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...