我试图在工作中使用Python中的smtplib包在内部发送电子邮件。我使用与R和Spyder相同的代理设置在VPN后面运行这个脚本。我使用以下代码,它是从mkyoung.com改编而来的
import smtplib
to = 'foo@foo-corporate.com'
corp_user = 'foo@foo-corporate.com'
corp_pwd = 'password'
smtpserver = smtplib.SMTP_SSL(local_hostname="smtp://foo-corporate.com", port = 25)
smtpserver.connect()一旦我尝试最后一行smtpserver.connect(),就会得到错误消息:
由于目标计算机主动拒绝连接,因此无法连接WinError 10061
这意味着服务器不接受SMTP请求。但是,如果我使用Blastula 套餐在R中执行相同的脚本,它可以正常工作。有人能建议我怎么拍这个吗?
library(blastula)
create_smtp_creds_key(
id = "email_creds",
user = "foo@foo-corporate.com",
host = "smtp://foo-corporate.com",
port = 25,
use_ssl = TRUE
)
email <-
compose_email(
body = md(" Hello,
This is a test email
"))
# Sending email by SMTP using a credentials file
email %>%
smtp_send(
to = "foo@foo-corporate.com",
from = "foo@foo-corporate.com",
subject = "Testing the `smtp_send()` function",
credentials = creds_key("email_creds")
)发布于 2022-11-21 10:31:16
嗨@Ovski 99999和@Ovski
谢谢你帮我调查这个。我终于让它使用了下面的代码
import smtplib
import ssl
to = 'foo@foo-corporate.com'
corp_user = 'foo@foo-corporate.com'
corp_pwd = 'password'
smtpserver = smtplib.SMTP_SSL("smtp://foo-corporate.com")
smtp_server.ehlo()
smtp_server.login(corp_user, corp_pwd)
msg_to_send = '''
hello world!
'''
smtp_server.sendmail(user,to,msg_to_send)
smtp_server.quit()发布于 2022-11-17 15:51:15
似乎根本不需要上下文。
这是一个使用TLS的例子。试试看,至少在我的环境中,这是有效的。
import smtplib
smtp_server = 'mail.example.com'
port = 587 # For starttls
sender_email = "from@mail.com"
receiver_email = 'to@mail.com'
password = r'password'
message = f'''\
From: from-name <from@mail.com>
To: to-name <to@mail.com>
Subject: testmail
testmail
'''
try:
server = smtplib.SMTP(smtp_server, port)
server.ehlo()
server.starttls()
server.ehlo()
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message)
except Exception as e:
# Print any error messages to stdout
print(e)
finally:
server.quit()https://stackoverflow.com/questions/74478118
复制相似问题