J'ai un morceau de code très simple que j'ai utilisé dans les versions précédentes de Python sans problèmes (version 2.5 et antérieures). Maintenant avec 3.0, le code suivant donne l'erreur sur la ligne de connexion "l'argument 1 doit être une chaîne ou un tampon, pas un str".Python 3.0 smtplib
import smtplib
smtpserver = 'mail.somedomain.com'
AUTHREQUIRED = 1 # if you need to use SMTP AUTH set to 1
smtpuser = '[email protected]' # for SMTP AUTH, set SMTP username here
smtppass = 'somepassword' # for SMTP AUTH, set SMTP password here
msg = "Some message to send"
RECIPIENTS = ['[email protected]']
SENDER = '[email protected]'
session = smtplib.SMTP(smtpserver)
if AUTHREQUIRED:
session.login(smtpuser, smtppass)
smtpresult = session.sendmail(SENDER, RECIPIENTS, msg)
Google montre qu'il ya quelques problèmes avec cette erreur de ne pas être clair, mais je ne peux toujours pas comprendre ce que je dois essayer de le faire fonctionner. Les suggestions incluaient la définition du nom d'utilisateur comme b "nom d'utilisateur", mais cela ne semble pas fonctionner non plus.
Vous auriez dû inclure la traceback – hop
Je chercherais certainement ceci sur le traqueur de bug de Python et/ou créerais un nouveau rapport de bogue, car cela ressemble clairement à un bogue dans smtplib ou aux modules sous-jacents comme l'email .base65mime – Jay
La branche 2.6 est toujours maintenue et il y en aura 2.7 aussi, donc vous n'avez pas besoin de changer pour le moment. – George