我在想.有没有办法在Python的默认SMTPlib上添加多个接收器?
喜欢(主题和内容已经设置,smtp服务器gmail.):
python sendmail.py receiver1@gmail.com receiver2@gmail.com receiver3@gmail.com ...
Run Code Online (Sandbox Code Playgroud)
谢谢
我写了一个python脚本来发送电子邮件,但现在我想知道是否可以使用python向Microsoft交换组发送电子邮件?我已经尝试将该组包含在cc和字段中,但这似乎没有成功.它显示,但似乎不对应一组电子邮件; 这只是纯文本.
任何人都知道这是否可行?
我看过其他几篇文章,包括:
创建带有图像的MIME电子邮件模板以使用python / django发送
这些以及smtplib和电子邮件的python文档使我离我很近。我正在使用下面的代码来创建嵌入了简单jpg的电子邮件。如果我将电子邮件发送给gmail,它将很好地显示嵌入的图像,但Outlook 2013无法显示。
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
From = ''
To = ''
msg = MIMEMultipart()
msg['Subject'] = 'image test message'
msg['From'] = From
msg['To'] = To
text = 'This is sample text from me'
html = '''
<html>
<head>
<title> this is a test title </title>
</head>
<body>
<p> Test me <br>
Another line <br>
This is the image you were looking for <img …Run Code Online (Sandbox Code Playgroud) 以下Python函数导致附件在名称为"noname"时应为"text_file.txt".正如您所看到的,我尝试了两种不同的MIMEBase和MIMEApplication方法.我也试过MIMEMultipart('替代')无济于事.
def send_email(from_addr, to_addr_list,
subject, html_body,plain_text_body,
login,
password,
smtpserver='smtp.gmail.com:587',
cc_addr_list=None,
attachment=None,
from_name=None):
message=MIMEMultipart()
plain=MIMEText(plain_text_body,'plain')
html=MIMEText(html_body,'html')
message.add_header('from',from_name)
message.add_header('to',','.join(to_addr_list))
message.add_header('subject',subject)
if attachment!=None:
#attach_file=MIMEBase('application',"octet-stream")
#attach_file.set_payload(open(attachment,"rb").read())
#Encoders.encode_base64(attach_file)
#f.close()
attach_file=MIMEApplication(open(attachment,"rb").read())
message.add_header('Content-Disposition','attachment; filename="%s"' % attachment)
message.attach(attach_file)
message.attach(plain)
message.attach(html)
server = smtplib.SMTP(smtpserver)
server.starttls()
server.login(login,password)
server.sendmail(from_addr, to_addr_list, message.as_string())
server.quit()
Run Code Online (Sandbox Code Playgroud)
我是如何调用函数的:
send_email(
from_addr=from_email,
to_addr_list=["some_address@gmail.com"],
subject=subject,
html_body=html,
plain_text_body=plain,
login=login,
password=password,
from_name=display_name,
attachment="text_file.txt"
)
Run Code Online (Sandbox Code Playgroud) 我试图用smtp模块发送电子邮件,但我有一个错误:
File "/usr/lib/python2.7/smtplib.py", in login
raise SMTPAuthenticationError(code, resp) smtplib.SMTPAuthenticationError: (534, '5.7.14)...
Run Code Online (Sandbox Code Playgroud)
有人已经有这个错误吗?你知道怎么解决吗?
代码:
def sendNotification():
recepients_list = "emailsmtplibtest@gmail.com"
subject = 'Subject'
message = "Message"
sendemail(recepients_list,subject,message)
def sendemail(to_addr_list, subject, message):
username = 'emailsmtplibtest@gmail.com'
password = 'passtest'
from_addr = 'emailsmtplibtest@gmail.com'
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login(username,password)
newmessage = '\r\n'.join([
'To: %s' %recepient_list,
'From: %s' % from_addr,
'Subject: %s' %subject,
'',
message
])
try:
server.sendemail(from_addr, to_addr_list,newmessage)
print 'notification sent'
except:
print 'error sending notification'
server.quit()
sendNotification()
Run Code Online (Sandbox Code Playgroud) 我在.png文件中有一个图像.我试图使用Python将此图像嵌入到电子邮件的正文中.我尝试了互联网上提供的各种选项,但他们提供了附加文件的解决方案,而不是嵌入电子邮件正文中.
这是我的代码片段.我正在附加一个文件,并尝试在电子邮件正文中添加图像(实际上是附加html文件,而不是将图像添加到电子邮件正文).在Python中是否可以在电子邮件正文中嵌入图像?
def send_report(send_from, send_to, subject, text, files=[], server="10.70.70.100",html=True):
#assert isinstance(send_to, list)
#assert isinstance(files, list)
msg = MIMEMultipart()
msg['From'] = send_from
msg['To'] = send_to
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
if (html):
part1 = MIMEText(text, 'html')
msg.attach(part1)
else:
msg.attach( MIMEText(text) )
for f in files:
part = MIMEBase('application', "octet-stream")
part.set_payload( open(f,"rb").read() )
Encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))
msg.attach(part)
#Trying to embed image in email body
img_data = open('a.png', 'rb').read()
html_part = MIMEMultipart(_subtype='related')
body = MIMEText('<p>Hello <img src="cid:myimage" /></p>', _subtype='html') …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 SMTP_SSL 发送电子邮件(邮件服务器不支持 smtp)。
import smtp
s = smtp.SMTP_SSL('xxxxx')
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
模块对象没有属性“SMTP_SSL”
我不太明白为什么 python smptlib 没有属性 SMTP_SSL ,因为python 文档显示 SMTP_SSL 有这个属性。
我正在使用带有Python 3.7设置的Anaconda环境。我正在尝试使用smtplib通过我的gmail帐户发送简单的电子邮件,并且收到“此python中不包含SSL支持”的信息,我的确意识到已经多次询问了此问题,但是我找不到有关如何添加的具体建议我的anaconda / python环境中的ssl支持。我安装了openssl和pyopenssl,但是没有运气。
这是我的代码:
import smtplib
from email.message import EmailMessage
msg = EmailMessage()
msg['Subject'] = 'test'
msg['From'] = 'xxxx@gmail.com'
msg['To'] = 'xxxx@gmail.com'
server = smtplib.SMTP('smtp.gmail.com:587')
server.ehlo()
server.starttls()
server.login('xxxx@gmail.com','xxxxx')
server.send_message(msg)
server.quit()
Run Code Online (Sandbox Code Playgroud)
同样,我的环境是:
在Windows 10 pycharm上运行的Anaconda python 3.7是IDE
编辑:这是我的conda列表和conda信息的输出
(py37) C:\Users\kspoo>conda list
# packages in environment at C:\Users\kspoo\Anaconda3\envs\py37:
#
# Name Version Build Channel
asn1crypto 0.24.0 <pip>
ca-certificates 2018.03.07 0 anaconda
certifi 2018.10.15 py37_0 anaconda
cffi 1.11.5 <pip>
cryptography 2.4.2 <pip>
idna 2.7 <pip>
openssl 1.1.1 he774522_0 anaconda
pip 18.1 py37_0 …Run Code Online (Sandbox Code Playgroud) smtplib ×10
python ×9
email ×3
anaconda ×1
c ×1
centos ×1
embed ×1
html-email ×1
kannel ×1
outlook ×1
python-2.7 ×1
python-3.x ×1
sms ×1
ssl ×1