我正在尝试使用python发送电子邮件(Gmail),但我收到以下错误.
Traceback (most recent call last):
File "emailSend.py", line 14, in <module>
server.login(username,password)
File "/usr/lib/python2.5/smtplib.py", line 554, in login
raise SMTPException("SMTP AUTH extension not supported by server.")
smtplib.SMTPException: SMTP AUTH extension not supported by server.
Run Code Online (Sandbox Code Playgroud)
Python脚本如下.
import smtplib
fromaddr = 'user_me@gmail.com'
toaddrs = 'user_you@gmail.com'
msg = 'Why,Oh why!'
username = 'user_me@gmail.com'
password = 'pwd'
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
Run Code Online (Sandbox Code Playgroud) 我正在使用以下方法使用SMTP从Python发送邮件.这是正确的使用方法还是我遗失了?
from smtplib import SMTP
import datetime
debuglevel = 0
smtp = SMTP()
smtp.set_debuglevel(debuglevel)
smtp.connect('YOUR.MAIL.SERVER', 26)
smtp.login('USERNAME@DOMAIN', 'PASSWORD')
from_addr = "John Doe <john@doe.net>"
to_addr = "foo@bar.com"
subj = "hello"
date = datetime.datetime.now().strftime( "%d/%m/%Y %H:%M" )
message_text = "Hello\nThis is a mail from your server\n\nBye\n"
msg = "From: %s\nTo: %s\nSubject: %s\nDate: %s\n\n%s"
% ( from_addr, to_addr, subj, date, message_text )
smtp.sendmail(from_addr, to_addr, msg)
smtp.quit()
Run Code Online (Sandbox Code Playgroud) 我在用Outlook 2003
.
发送电子邮件(通过Outlook 2003
)使用的最佳方式是什么Python
?
我正在尝试学习如何使用 python 发送电子邮件。我读过的所有网络教程都解释了如何使用 Gmail 进行操作。
但是,从 2022 年 5 月 30 日起(尽管每个人都可以自由地使用自己的帐户做任何他想做的事情),Google 制定了一项新政策,规定:
为了确保您的帐户安全,从 2022 年 5 月 30 日开始,Google 将不再支持使用仅要求您提供用户名和密码的第三方应用或设备。登录您的 Google 帐户。
来源: https: //support.google.com/accounts/answer/6010255
所以我的问题是有没有其他方法可以使用 python 发送电子邮件(包括属于其他公司的电子邮件帐户)?
这是我发送电子邮件的功能:
def send_email_fct(filename, filepath, fromaddr, mdpfrom, toaddr):
"""" filename: file name to be sent with extension
filepath: file path of the file to be sent
fromaddr: sender email address
mdpfrom: password of sender email address
toaddr: receiver email address"""
msg = MIMEMultipart() # instance of MIMEMultipart
msg['From'] = fromaddr
msg['To'] …
Run Code Online (Sandbox Code Playgroud) 使用Python发送电子邮件时遇到一个小问题:
#me == my email address
#you == recipient's email address
me = "some.email@gmail.com"
you = "some_email2@gmail.com"
# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = "Alert"
msg['From'] = me
msg['To'] = you
# Create the body of the message (a plain-text and an HTML version).
html = '<html><body><p>Hi, I have the following alerts for you!</p></body></html>'
# Record the MIME types of both parts - text/plain and text/html.
part2 = MIMEText(html, 'html')
# …
Run Code Online (Sandbox Code Playgroud) 免责声明:由于这个问题的广泛性(见下文;-),我对标题犹豫不决,其他选项包括:
首先,一点上下文:
为了学习,我正在构建一个具有用户注册功能的网站.这个想法是,注册后用户将收到一封带有激活链接的电子邮件.我想编写并发送来自Python代码的电子邮件,这是我想要求澄清的部分.
我的理解,在我开始之前(显然天真=)可以这样说明(假设有一个合法的电子邮件地址user@example.com):
搜索的例子后,我碰上#1(的一些问题与解答1,2,3,4).从这些我已经提炼出以下片段,撰写并发送来自Python代码的电子邮件:
import smtplib
from email.message import EmailMessage
message = EmailMessage()
message.set_content('Message content here')
message['Subject'] = 'Your subject here'
message['From'] = 'me@example.com'
message['To'] = 'user@example.com'
smtp_server = smtplib.SMTP('smtp.server.address:587')
smtp_server.send_message(message)
smtp_server.quit()
Run Code Online (Sandbox Code Playgroud)
接下来(明显的)问题是要传递给什么smtplib.SMTP()
而不是'smtp.server.address:587'
.从评论到这个答案,我发现本地SMTP服务器(仅用于测试目的)可以通过python3 -m smtpd -c DebuggingServer -n localhost:1025
,然后smtp_server = smtplib.SMTP('smtp.server.address:587')
可以更改为,smtp_server = smtplib.SMTP('localhost:1025')
并且所有已发送的电子邮件将显示在控制台中(从python3 -m smtpd -c DebuggingServer -n localhost:1025 …
您好我想发送电子邮件激活使用django registration redux.
这是我的setting.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
ACCOUNT_ACTIVATION_DAYS = 3
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'blahblah@gmail.com'
EMAIL_HOST_PASSWORD = 'blahpassword'
EMAIL_PORT = 465
EMAIL_USE_SSL = True
LOGIN_REDIRECT_URL = '/'
Run Code Online (Sandbox Code Playgroud)
当我尝试
python manage.py shell
来自django.core.mail导入send_mail
send_mail('测试','这是测试','youremail @ gmail.com',['toemail@gmail.com'])
我收到这样的错误:
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/home/apsijogja/djangogirls/myvenv/local/lib/python2.7/site-packages/django/core/mail/__init__.py", line 62, in send_mail
return mail.send()
File "/home/apsijogja/djangogirls/myvenv/local/lib/python2.7/site-packages/django/core/mail/message.py", line 286, in send
return self.get_connection(fail_silently).send_messages([self])
File "/home/apsijogja/djangogirls/myvenv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 92, in send_messages
new_conn_created = self.open()
File "/home/apsijogja/djangogirls/myvenv/local/lib/python2.7/site-packages/django/core/mail/backends/smtp.py", line 50, in open
self.connection …
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 python 3.6 中的一个简单函数将 csv 文件作为附件发送。
from email.message import Message
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def email():
msg = MIMEMultipart()
msg['Subject'] = 'test'
msg['From'] = 'test@gmail.com'
msg['To'] = 'testee@gmail.com'
msg.preamble = 'preamble'
with open("test.csv") as fp:
record = MIMEText(fp.read())
msg.attach(record)
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("test@gmail.com", "password")
server.sendmail("test@gmail.com", "testee@gmail.com", msg)
server.quit()
Run Code Online (Sandbox Code Playgroud)
调用email()
产生错误expected string or bytes-like object
。重新定义server.sendmail("test@gmail.com", "testee@gmail.com", msg)
为server.sendmail("atest@gmail.com", "testee@gmail.com", msg.as_string())
会导致发送电子邮件,但会在电子邮件正文中发送 csv 文件,而不是作为附件发送。谁能给我一些关于如何将 csv 文件作为附件发送的提示?
我想用python发送一个简单的邮件
import smtplib
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login("mymail@gmail.com", "mypassword")
msg = "Hello world"
server.sendmail("mymail@gmail.com", "mymail@gmail.com", msg)
server.quit()
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
server.login("user@gmail.com", "psw")
File "C:\Python\lib\smtplib.py", line 652, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (534, b'5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbuxb\n5.7.14 4i2u8qU8V3jgf6uGv8da1RAGPJyctRvIFy_kjai6aKVx_B6qVhoz_dzFpvfPC18H-jeM6K\n5.7.14 cnm2HVuq-wr-uw59hD31ms-cxMmnZuq6Z3_liDaDmu8_UqaiUwR4FUiuX2i5pPdQjJzFvv\n5.7.14 4VrEF5XT4ol2iN17gnB_jITpwzsjH9Ox3NCNcfl7SriHr5m7esc15PWI0CG_2CTlyh7RxW\n5.7.14 XhoJPajs8GMd-khOQWUqucywfrfo> Please log in via your web browser and\n5.7.14 then try again.\n5.7.14 Learn more at\n5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 ef10sm13614207wjd.49 - gsmtp')
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
谢谢
我正在尝试用 Python 发送一封带有自定义收件人、主题和正文的电子邮件。这意味着我不想使用Python 的 smtp 包,而是使用webbrowser 之类的东西,因为我需要它来打开带有上述参数的默认电子邮件客户端(在我的情况下为 Thunderbird)。
import webbrowser
webbrowser.open("mailto:?to=aaa@email.com&subject=mysubject", new=1)
Run Code Online (Sandbox Code Playgroud)
工作,但我需要它从我之前找到的字符串和我之前创建的文本文件中的正文中获取收件人。
有没有我找不到的“简单”方法来做到这一点?提前致谢。
python ×10
email ×7
gmail ×4
smtp ×4
python-2.7 ×2
python-3.x ×2
smtplib ×2
csv ×1
django ×1
networking ×1
outlook ×1