import smtplib, dkim, time, os
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
print('Content-Type: text/plain')
print('')
msg = MIMEMultipart('alternative')
msg['From'] = 'test@example.com'
msg['To'] = 'person@anotherexample.com'
msg['Subject'] = ' Test Subject'
msg['Message-ID'] = "<" + str(time.time()) + "-1234567890@example.com" + ">"
# Create the body of the message (a plain-text and an HTML version).
text = """\
Test email displayed as text only
"""
html = """\
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head>
<title>Test DKMI Email</title>
</head>
<body>
HTML Body of Test DKIM
</body>
</html>
"""
# Record the MIME types of both parts - text/plain and text/html.
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
# DKIM Private Key for example.com RSA-2048bit
privateKey = open(os.path.join('C:\\dev\\python\\', '2048.example.com.priv')).read()
# Specify headers in "byte" form
headers=[b'from', b'to', b'subject', b'message-id']
# Generate message signature
sig = dkim.sign(msg.as_bytes(), b'introduction', b'example.com', privateKey.encode(), include_headers=headers)
sig = sig.decode()
# Add the DKIM-Signature
msg['DKIM-Signature'] = sig[len("DKIM-Signature: "):]
# Send the message via local SMTP server.
s = smtplib.SMTP('localhost')
# sendmail function takes 3 arguments: sender's address, recipient's address
# and message to send - here it is sent as one string.
s.sendmail(msg['From'], msg['To'], msg.as_string())
s.quit()
这应该有帮助。在
https://launchpad.net/dkimpy
我查看了项目中包含的测试和命令行工具,以了解如何使用它。在
下面是一个代码片段,它将告诉您如何使用它。抱歉,我不能提供更多。在
然后使用可以使用smtplib发送电子邮件。在
在这里可以轻松生成私钥和公钥:
https://www.port25.com/support/domainkeysdkim-wizard/
我要感谢乔治齐默的上述回答。我在Python3.6.2上运行时遇到了一些困难,因为自2.x版本以来,一些“字节”/“string”项发生了变化。下面是生成MIMEMultipart(text/HTML)并用DKIM签名的代码。我使用了dkimpy-0.6.2。在
我的第一个StackOverflow帖子。希望对你有帮助。。。在
在前面两个答案的基础上,我还有一些额外的建议。在
- 生成私钥。在Unix上:
^{pr2}$C:\dev\python\
和{相关问题 更多 >
编程相关推荐