使用 telnet 发送的电子邮件,但不使用 SMTLIB python 脚本[组织邮件/不是 Gmail]

Posted

技术标签:

【中文标题】使用 telnet 发送的电子邮件,但不使用 SMTLIB python 脚本[组织邮件/不是 Gmail]【英文标题】:Email sent with telnet, But not with SMTLIB python script[Organization Mail / Not Gmail] 【发布时间】:2021-11-16 21:12:16 【问题描述】:

我正在尝试编写一个脚本来使用我的组织电子邮件在电子邮件中发送附件!我首先尝试了 telnet,它工作正常!

    >helo username@company.net
    >mail from:<username@company.net>
    >rcpt to:<username@company.net>
    >data
    >From: username@company.net
    >Subject: test mail from command line

    >this is test number 1
    >sent from linux box
    >.
    >quit

但是当我尝试使用 .py 脚本时,我遇到了一些问题:

这是我的代码

    import smtplib  
    fromaddr = 'naoufal.brahmi.external@atos.net' 
    toaddrs  =  'naoufal.brahmi.external@atos.net'
    msg = 'Hello'  
    # The actual mail send  
    server = smtplib.SMTP('sddlogin',25)  
    server.set_debuglevel(1)
    server.ehlo()
    print("ok ehlo")
    server.sendmail(fromaddr, toaddrs, msg) 
    print("email sent") 
    server.quit()

我的中继访问被拒绝:这是日志:


    send: 'ehlo [172.20.0.11]\r\n'
    reply: '250-sddlogin.frcl.bull.fr\r\n'
    reply: '250-PIPELINING\r\n'
    reply: '250-SIZE 10240000\r\n'
    reply: '250-VRFY\r\n'
    reply: '250-ETRN\r\n'
    reply: '250-ENHANCEDSTATUSCODES\r\n'
    reply: '250-8BITMIME\r\n'
    reply: '250 DSN\r\n'
    reply: retcode (250); Msg: sddlogin.frcl.bull.fr
    PIPELINING
    SIZE 10240000
    VRFY
    ETRN
    ENHANCEDSTATUSCODES
    8BITMIME
    DSN
    ok ehlo
    send: 'mail FROM:<naoufal.brahmi.external@atos.net> size=5\r\n'
    reply: '250 2.1.0 Ok\r\n'
    reply: retcode (250); Msg: 2.1.0 Ok
    send: 'rcpt TO:<naoufal.brahmi.external@atos.net>\r\n'
    reply: '554 5.7.1 <naoufal.brahmi.external@atos.net>: Relay access denied\r\n'
    reply: retcode (554); Msg: 5.7.1 <naoufal.brahmi.external@atos.net>: Relay access denied
    send: 'rset\r\n'
    reply: '250 2.0.0 Ok\r\n'
    reply: retcode (250); Msg: 2.0.0 Ok
    Traceback (most recent call last):
      File "/gpfs/work/nbrahmi/utils/mcook/dev-r3.12/test/system_tests/light_nonregression/env_vrm_mode/send_email.py", line 10, in <module>
        server.sendmail(fromaddr, toaddrs, msg) 
      File "/usr/lib64/python2.7/smtplib.py", line 746, in sendmail
        raise SMTPRecipientsRefused(senderrs)
    smtplib.SMTPRecipientsRefused: 'naoufal.brahmi.external@atos.net': (554, '5.7.1 <naoufal.brahmi.external@atos.net>: Relay access denied')

```python

 

【问题讨论】:

服务器没有密码,因为我的 ssh 密钥已经安装!所以我只是直接 ssh,这就是我不使用 server.login 的原因! 您的邮件服务器不关心您的 ssh 密钥。您正在连接到 ddlogin.frcl.bull.fr 并尝试发送到 atos.net 地址。因此,ddlogin.frcl.bull.fr 看到 atos.net 地址不是本地地址,即不在法国服务器上,并且它拒绝中继电子邮件以免被垃圾邮件发送者滥用。连接到您的电子邮件提供商的 smtp 服务器,或直接连接到 atos.net。 【参考方案1】:

您好,我也遇到了同样的错误。这是由于 Google 的新安全政策所致。为了消除这个错误,我去了 Security.google.com -> 安全 -> 不太安全的应用程序 -> 打开它。 你很高兴

【讨论】:

谢谢丹麦人,但我使用的是服务器和电子邮件公司而不是谷歌!

以上是关于使用 telnet 发送的电子邮件,但不使用 SMTLIB python 脚本[组织邮件/不是 Gmail]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ruby 脚本发送电子邮件 - 501 5.5.4 无效地址

在脚本中使用 telnet 命令发送邮件

使用Telnet伪造邮件发送

我正在尝试使用 smtp 协议通过 telnet 发送电子邮件,但在“MAIL FROM:”之后遇到错误响应

有没有可以像 Telnet 一样使用的 REST api

HangFire排队电子邮件“成功”但不发送