我正在使用 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']
解决方案是通过电子邮件预先确定应用程序的前景。