简体   繁体   English

Smtplib 代码在 python3.7 中为 linux 工作,但不适用于 windows 10

[英]Smtplib code working in python3.7 for linux but not for windows 10

I am trying to send automated mail through outlook using python3.7.The smtlib code is working fine for python installed in linux while the same code is returning me error for windows. I am trying to send automated mail through outlook using python3.7.The smtlib code is working fine for python installed in linux while the same code is returning me error for windows.

import time, os, smtplib
from datetime import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders


print("sam")
s = smtplib.SMTP('smtp-mail.outlook.com', 587)
print("sam1")
s.starttls()
print("sam2")
s.login("samgupta@xyz.com", "Welcome")
message = "Hi"
print("sam3")
s.sendmail("samgupta@xyz.com", "abc@xyz.com", message)
s.quit()

This is the error message i am getting in windows python:这是我在 windows python 中收到的错误消息:

Traceback (most recent call last): File "C:/Users/sysadmin/Desktop/mail.py", line 10, in s = smtplib.SMTP('smtp-mail.outlook.com', 587) File "C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", line 251, in init (code, msg) = self.connect(host, port) File "C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", line 336, in connect self.sock = self._get_socket(host, port, self.timeout) File "C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py", line 307, in _get_socket self.source_address) File "C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 727, in create_connection raise err File "C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\socket.py", line 716, in create_connection sock.connect(sa) TimeoutError: [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established conne回溯(最近一次通话最后):文件“C:/Users/sysadmin/Desktop/mail.py”,第 10 行,在 s = smtplib.SMTP('smtp-mail.outlook.com', 587) 文件“C: \Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py",第 251 行, init (code, msg) = self.connect(host, port) File "C:\Users\ sysadmin\AppData\Local\Programs\Python\Python37-32\lib\smtplib.py”,第 336 行,在连接 self.sock = self._get_socket(host, port, self.timeout) 文件“C:\Users\sysadmin \AppData\Local\Programs\Python\Python37-32\lib\smtplib.py”,第 307 行,在 _get_socket self.source_address) 文件“C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\ lib\socket.py”,第 727 行,在 create_connection 中引发错误文件“C:\Users\sysadmin\AppData\Local\Programs\Python\Python37-32\lib\socket.py”,第 716 行,在 create_connection sock.connect (sa) TimeoutError: [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或建立连接ction failed because connected host has failed to respond操作失败,因为连接的主机未能响应

Can you just try this bit?你可以试试这个吗? This should print the exceptions and we can fix the problem once we know the problem nature.这应该打印异常,一旦我们知道问题的性质,我们就可以解决问题。

import smtplib
global server
try:
    server = smtplib.SMTP_SSL( < host >, < port >)
    except Exception as e:
    print("{}".format(e))

try:
    server.login("your username", "your password")
except Exception as e:
    print("{}".format(e))
server.sendmail(
    "from@address.com",
    "to@address.com",
    "this message is from python")
server.quit()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM