如何解决为了用 Python 发送邮件,我做错了什么
嗨,如果只在一个文件中运行此代码,我会遇到问题。
import win32com.client as win32
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
mail.To='example@example.com'
mail.Subject='Message subject'
mail.Body='Message body'
mail.Send()
但现在我需要拆分才能有一个功能,所以我这样做了。
mailCode.py
import win32com.client as win32
class multipleSendByMail:
outlook=win32.Dispatch('outlook.application')
mail=outlook.CreateItem(0)
def multipleSendMail(self,destMail,msg,subject):
for i in destMail:
self.mail.To=destMail #'example@example.com'
self.mail.Subject=subject #'Message subject'
self.mail.Body=msg #'Message body'
self.mail.Send()
return True
main.py
from mailCode import *
sendMail = multipleSendByMail
destMail = ["mail1@mail.com","mail2@mail.com"]
msg = "Messaggio"
subject = "Oggetto"
ret = sendMail.multipleSendMail(destMail,subject)
但是我遇到了这个错误:
ret = sendMail.multipleSendMail(destMail,subject)
TypeError: multipleSendMail() missing 1 required positional argument: 'subject'
所以我尝试像这样修改main:
main.py
from mailCode import *
sendMail = multipleSendByMail()
destMail = ["mail1@mail.com",subject)
但是我遇到了这个错误:
Traceback (most recent call last):
File "C:/Users/myPath/mailSender/main.py",line 7,in <module>
ret = sendMail.multipleSendMail(destMail,subject)
File "C:\Users\myPath\mailSender\mailCode.py",line 9,in multipleSendMail
self.mail.To=i
File "C:\tools\Anaconda3\lib\site-packages\win32com\client\dynamic.py",line 549,in __setattr__
self._oleobj_.Invoke(entry.dispid,invoke_type,value)
pywintypes.com_error: (-2147352567,'Eccezione.',(4096,'Microsoft Outlook',"L'elemento è stato spostato o eliminato.",None,-2147221238),None)
错误是意大利语,并说“元素已被移动或删除”的异常
怎么了?我认为这是一个基本错误,但我现在看不到?
解决方法
已解决。
destMail = ["mail1@mail.com","mail2@mail.com"]
必须是: destMail = "mail1@mail.com; mail2@mail.com"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。