У меня есть два аккаунта на перспективу 'user1@example.com' и 'user2@example.com'. У меня есть несколько черновиков в папке черновиков user1, и я хочу обновить каждое электронное письмо до адреса user2, прежде чем отправлять их, чтобы user2 был отправителем писем и появлялся в поле from для почтовых отправлений.
с использованием exchangelib Мне удалось изменить адрес «отправителя» и «учетной записи» с user1 на user2 (и даже print(item.sender, item.account)
, чтобы проверить изменение), но обновление не отражается на электронные письма 'из поля в папке черновика Outlook, когда это будет сделано.
import getpass
from exchangelib import Configuration
from exchangelib import Credentials, Account
from exchangelib import FileAttachment, HTMLBody
from exchangelib.properties import DistinguishedFolderId
def authenticate():
"""
Authenticate into mail.example.com
"""
email = "user1@example.com"
passwd = getpass.getpass(prompt="Enter your password: ")
user_credentials = Credentials(email, passwd)
config = Configuration(server="mail.example.com",
credentials=user_credentials)
account = Account(primary_smtp_address=email, config=config,
credentials=user_credentials, autodiscover=False)
return account
def main():
"""
Change sender account to user2@example.com
"""
user_account = authenticate()
drafts = DistinguishedFolderId('drafts')
for item in user_account.drafts.all().order_by('subject'):
item.sender = 'user2@example.com'
item.account = 'user2@example.com'
user_account.drafts.save(update_fields=['sender', 'account'])
exit("Done")
if __name__ == "__main__":
main()