yagmail icon indicating copy to clipboard operation
yagmail copied to clipboard

SMTP instance has no attribute 'is_closed'"

Open Euphorbium opened this issue 8 years ago • 2 comments

I am using click python package to parse command line arguments. When using it with yagmail, I get this error.

Traceback (most recent call last):
 File "/Users/euphorbium/PyCharmProjects/birthdaynotifier/test.py", line 12, in <module>
   send_mail()
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/click/core.py", line 716, in __call__
   return self.main(*args, **kwargs)
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/click/core.py", line 696, in main
   rv = self.invoke(ctx)
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/click/core.py", line 889, in invoke
   return ctx.invoke(self.callback, **ctx.params)
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/click/core.py", line 534, in invoke
   return callback(*args, **kwargs)
 File "/Users/euphorbium/PyCharmProjects/birthdaynotifier/test.py", line 8, in send_mail
   yag = yagmail.SMTP(un, pw).send('[email protected]', 'test', 'test')
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/yagmail/yagmail.py", line 54, in __init__
   self.user, self.useralias = self._make_addr_alias_user(user)
 File "/Users/euphorbium/miniconda3/envs/birthdays/lib/python2.7/site-packages/yagmail/yagmail.py", line 305, in _make_addr_alias_user
   raise YagAddressError
yagmail.error.YagAddressError
Exception AttributeError: "SMTP instance has no attribute 'is_closed'" in <bound method SMTP.__del__ of <yagmail.yagmail.SMTP instance at 0x102f6c098>> ignored

Here is the example program:

import yagmail
import click

@click.command()
@click.option('--un', help='Your gmail username')
@click.option('--pw', help='Your gmail password')
def send_mail(un, pw):
    yag = yagmail.SMTP(un, pw)

    yag.send('[email protected]', 'test', 'test')


if __name__ == '__main__':
    send_mail()

Euphorbium avatar Dec 01 '16 21:12 Euphorbium

+1

doglex avatar Feb 15 '17 09:02 doglex

It's quite harmless, but I think I solved it. Note that the actual problem in your code is the yagmail.error.YagAddressError.

See if you get the AttributeError after an upgrade: pip install -U --no-cache yagmail

kootenpv avatar Feb 21 '17 08:02 kootenpv