使用 Django 中的 Win32 库通过 Outlook 发送电子邮件的问题

问题描述 投票:0回答:1

我正在使用 Win32 在我的网站上发送电子邮件。

一般情况下,邮件已发送并到达收件人,但问题是收件人没有改变。

最初,当我开始这个项目时,我使用了一个测试电子邮件来在不同的场景中使用。此电子邮件为“[电子邮件受保护]”。后来,我为另一个名为用户 2 的用户添加了另一个电子邮件地址,并使用他们自己的电子邮件地址“[email protected]”。

问题在于收件人没有改变。我特意选择我的收件人为“[电子邮件受保护]”,但我始终收到“[电子邮件受保护]”的所有电子邮件。

outlook = win32.Dispatch('Outlook.Application')
mail = outlook.CreateItem(0)
mail.SentOnBehalfOfName = '[email protected]'
mail.To = email
mail.Subject = 'NUEVA SOLICITUD DE PRUEBAS DE LABORATORIO'
mail.BodyFormat = 2
html_body = f"""
    <html>
    <body style="font-family: 'Arial', sans-serif; background-color: #f4f4f4; margin: 0; padding: 0;">
        <div style="max-width: 600px; margin: 20px auto; background-color: #ffffff; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);">
        <h1 style="color: #333; margin-bottom: 10px;">Nueva solicitud de pruebas de laboratorio de {full_name}</h1>
        <p style="color: #555; margin-bottom: 20px;">El usuario {full_name} ha creado una nueva solicitud de pruebas de laboratorio para el cliente {customer} con una fecha requerida para el {require_date}. A continuación, se detallan más información y enlaces:</p>

        <ul style="list-style-type: none; padding: 0;">
            <li><strong>Cliente:</strong> {customer}</li>
            <li><strong>Usuario:</strong> {full_name}</li>
            <li><strong>Fecha requerida:</strong> {require_date}</li>
            <li><strong>Enlace al sitio:</strong> <a href="{dynamic_link}" style="color: #007BFF; text-decoration: none;">Ir al Sitio</a></li>
        </ul>

        <div style="margin-top: 20px; border-top: 1px solid #ddd; padding-top: 20px;">
            <p style="color: #888; font-size: 14px;">Este correo electrónico fue generado automáticamente. Por favor, no responda a este correo.</p>
        </div>
        </div>
    </body>
    </html>
    """
mail.HTMLBody = html_body

mail.Send()
           
# Forzar la sincronización para enviar el correo inmediatamente
outlook_namespace = outlook.GetNamespace("MAPI")
sync_objects = outlook_namespace.SyncObjects
for sync_object in sync_objects:
    sync_object.Start()

考虑到我之前已验证电子邮件是否正确写入数据库中,我用于分配收件人的代码如下。

engineer_instance = get_object_or_404(Engineers, role='admin')
            engineer_serializer = EnginnerAdminSerializer(engineer_instance)
            email = engineer_serializer.data['email']
python django vba winapi django-email
1个回答
0
投票

解决方案是通过电子邮件预先确定应用程序的前景。

© www.soinside.com 2019 - 2024. All rights reserved.