Welcome to Python Zimbra Web’s documentation!¶
Indices and tables¶
Contents¶
Usage¶
You can use zimbraweb.ZimbraUser()
to send E-mails. You can send multiple
E-mails within a single session.
from zimbraweb import ZimbraUser
user = ZimbraUser("https://myzimbra.server")
user.login("s000000", "hunter2")
user.send_mail(to="receiver@example.com", subject="subject", body="body", cc="cc@example.com")
user.logout()
Sending EMLs¶
Please note the Limitations when trying to parse EML.
from zimbraweb import ZimbraUser
user = ZimbraUser("https://myzimbra.server")
user.login("s000000", "hunter2")
emlstr = open("myemlfile.eml").read()
user.send_eml(emlstr)
Sending raw WebkitPayloads¶
If you don’t want to rely on us to generate the payload, you can
generate a payload yourself and send it using zimbraweb.ZimbraUser.send_raw_payload()
.
from zimbraweb import ZimbraUser
user = ZimbraUser("https://myzimbra.server")
user.login("s000000", "hunter2")
# you could also generate the payload yourself or use our library
raw_payload, boundary = user.generate_webkit_payload(to="to@example.com", subject="hello world!", body="this is a raw payload.")
# then send the raw_payload bytes
user.send_raw_payload(raw_payload, boundary)
user.logout()
Attachments¶
You can generate attachments using the zimbraweb.WebkitAttachment()
class:
from zimbraweb import ZimbraUser, WebkitAttachment
user = ZimbraUser("https://myzimbra.server")
user.login("s000000", "hunter2")
attachments = []
with open("myfile.jpg", "rb") as f:
attachments.append(WebkitAttachment(content=f.read(), filename="attachment.jpg"))
user.send_mail(to="receiver@example.com", subject="subject", body="body", attachments=attachments)
user.logout()
Known Limitations¶
Emoji is not supported, even though other UTF-8 characters are. See Issue #3
This package is made with German UIs in mind. If your UI is in a different language, feel free to fork and adjust the language-specific strings as needed. Issue #43
The EML parsing can strictly only parse plaintext emails, optionally with attachments. Any emails with a Content-Type other than
text/plain
ormultipart/mixed
will be rejected. This is because the zimbra web interface does not allow HTML emails. Parsingmultipart/mixed
will only succeed if there is exactly onetext/plain
part and, optionally, attachments with theContent-Disposition: attachment
header. If there are anymultipart/alternative
parts, the parsing will fail because we cannot deliver them to the Zimbra web interface.