I am attempting to use the python 3.2 SMTPlib.sendmail() function
to send a message, after some modifcation of the SMTP library (namely
commenting out the rset() function which was suppressing the error msg)
I managed to retrieve the following error message from the server:
SendMail Failed
(554, b'Transaction failed : Cannot send message due to possible abuse; please visit http://postmaster.yahoo.com/abuse_smtp.html for more information')
The yahoo mail SMTP server thinks I'm sending spam, the URL does link to anything
useful. I think it has to do with an inadequate header, I can't seem to find a definitive
answer on what constitutes a compliant header & I've read of simmilar issues with Gmail.
Mock emails have been substituted for this post.
Any help would be appreciated
My full code is below:
self.message = email.message_from_string('''To: <ksmith@yahoo.co.nz>
From: <rwilson@yahoo.co.nz>
Reply-To: <rwilson@yahoo.co.nz>
Subject: Test send mail
Hello''')
fromAddress = 'rwilson@yahoo.co.nz'
toAddress = 'ksmith@yahoo.co.nz'
try:
self.smtp = SMTP()
self.smtp.connect('smtp.mail.yahoo.com')
except Exception:
print('Connection Failed')
print(traceback.format_exc())
try:
self.smtp.login('rwilson','tree22')
except Exception:
print('Login Failed!')
print(traceback.format_exc())
try:
self.smtp.sendmail(fromAddress,toAddress ,self.message.as_string())
print("Message sucessfully sent!")
self.smtp.close()
except Exception as e:
print('SendMail Failed')
print(e)
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…