首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python无法向Gmail发送电子邮件

Python无法向Gmail发送电子邮件
EN

Stack Overflow用户
提问于 2018-05-30 07:40:44
回答 4查看 4.4K关注 0票数 4

我有一个python脚本来发送电子邮件。我利用它向我的电子邮件和电话发送警报。但由于某些原因,这些邮件在发送到gmail帐户时无法接收。我看到我的代码与其他示例之间的最大区别是我不能使用smtp.gmail.com。下面是我的电子邮件/文本函数:

代码语言:javascript
复制
import smtplib

sender = 'xxxx@company.com'
smtpObj = smtplib.SMTP('smtp.company.com')

def text_func ( subject,text_message ):
    text_receivers = ['##########@vtext.com',
        'xxxxxxxx@company.com',
        'xxxxxxxx@gmail.com'
    ]
    text_message = """Subject: %s

    %s
    """ % (subject, text_message)

    smtpObj.sendmail(sender, text_receivers, text_message)

上面的代码适用于向我的手机和工作电子邮件发送短信,但不能发送到gmail。我检查并确保电子邮件不会出现在垃圾邮件文件夹中。谷歌似乎完全阻止了它。有什么想法吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-06-01 01:36:03

找到了解决方案。

代码语言:javascript
复制
import smtplib
from email.mime.text import MIMEText

sender = 'xxxx@company.com'
smtpObj = smtplib.SMTP('smtp.company.com')

def text_func ( subject,text_message ):
    text_receivers = ['##########@vtext.com',
        'xxxxxxxx@company.com',
        'xxxxxxxx@gmail.com'
    ]

    cont = '''\
       <html>
         <head></head>
         <body>
           <p>{0}</p>
         </body>
       </html>
       '''.format(text_message)

    msgTo = ""
    for person in text_receivers:
        msgTo += "{0} ".format(person)

    msg = MIMEText(cont, 'html')

    msg['Subject'] = subject
    msg['From'] = sender
    msg['To'] = msgTo

    smtpObj.sendmail(sender, text_receivers, msg.as_string())
票数 0
EN

Stack Overflow用户

发布于 2018-05-30 07:45:00

这可能是不正确的,因为我对smtplib的文本方面没有太多的经验,但看起来你需要启动TLS连接。我会将您的脚本更改为以下内容:

代码语言:javascript
复制
import smtplib

sender = 'xxxx@company.com'
smtpObj = smtplib.SMTP('smtp.company.com')
smtpObj.starttls()

def text_func ( subject,text_message ):
text_receivers = ['##########@vtext.com',
    'xxxxxxxx@company.com',
    'xxxxxxxx@gmail.com'
]
text_message = """Subject: %s

%s
""" % (subject, text_message)

smtpObj.sendmail(sender, text_receivers, text_message)
票数 1
EN

Stack Overflow用户

发布于 2019-08-17 14:42:18

我也面临着同样的问题。当我用webmail查看我的收件箱时,我发现这封邮件被gmail拒绝了。

通过将"From“标题添加到电子邮件中,解决了该问题。

代码语言:javascript
复制
import smtplib, ssl
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

sender_email = "test@example.com"
receiver_email = "example@gmail.com"
password = "pass1234"
host = "example.com"
port = 465
message = MIMEMultipart("alternative")
message["Subject"] = "Email Subject"
message["From"] = sender_email
message["To"] = receiver_email
text = "This is the email Body"
message.attach(MIMEText(text, "plain"))
context = ssl.create_default_context()
with smtplib.SMTP_SSL(host, port, context=context) as server:
    server.login(sender_email, password)
    server.sendmail(
        sender_email, receiver_email, message.as_string()
    )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档