当前位置: 首页 > 知识库问答 >
问题:

Debian上带有后缀的EC2实例的Amazon SES中继无法发送电子邮件

都阳辉
2023-03-14

我被要求做一些系统管理,并将遗留的PHP Web应用程序移动到运行Debian的Amazon EC2实例。我已经这样做了,电子邮件正在成功地从postfix发送。

先前的系统管理员表示担心服务器没有使用电子邮件中继,请求使用SES似乎是直截了当的。我已经从Rackspace实例中使用Mailgun实现了一个邮件中继,虽然不是很简单,但我在几个小时内就完成了。

我没有发现SES过程如此简单,我怀疑这是因为我不熟悉使用证书。

最初,我使用这里的说明设置服务http://docs.aws.amazon.com/ses/latest/DeveloperGuide/postfix.html

  • 为服务器设置弹性IP
  • 为SMTP服务器创建凭据
  • 创建IAM用户,并在email-smtp.us-west-2.amazonaws.com获得SMTP的用户名和密码
  • 我创建了一个 /etc/postfix/sasl_passwd文件

[电子邮件smtp.us-west-2.amazonaws.com]:25用户名:密码

>

  • 然后我跑了

    postmap散列:/etc/postfix/sasl\u passwd

    创造sasl_passwd.db

    >

  • /etc/postfix/master.cf没有smtp_fallback_relay

    我通过安装apt-get-install-sasl2-bin和

    openssl req-x509-nodes-days 365-newkey rsa:2048-keyout服务器。密钥输出服务器。阴极射线管

    并在我的main.cf(在这篇文章的结尾)指向这个后缀。

    我正在使用sendmail通过Python发送电子邮件

    SENDMAIL = "/usr/sbin/sendmail" # sendmail location
    
    FROM = "andy@travelinsurancequotes.com.au"
    #TO = ["kirstie@travelinsurancequotes.com.au", "jason@slatescience.com"]
    TO = ["jason@slatescience.com"]
    
    SUBJECT = "Artog SMTP server is working!"
    
    TEXT = "Sending emails on the TIQ webserver is working"
    
    # Prepare actual message
    
    message = """\
    From: %s
    To: %s
    Subject: %s
    
    %s
    """ % (FROM, ", ".join(TO), SUBJECT, TEXT)
    
    # Send the mail
    
    import os
    
    p = os.popen("%s -f %s -t -i" % (SENDMAIL, FROM), "w")
    p.write(message)
    status = p.close()
    if status:
        print "Sendmail exit status", stat
    

    但我在发送时不断收到超时错误:

    Feb 26 03:18:19 lamp postfix/error[23414]: 5DE3240508: to=<jason@slatescience.com>, relay=none, delay=0.02, delays=0.02/0/0/0, dsn=4.4.1, status=deferred (delivery temporarily suspended: connect to email-smtp.us-west-2.amazonaws.com[54.187.123.10]:25: Connection timed out
    

    我可以通过25端口连接

    root@lamp /home/www# telnet email-smtp.us-west-2.amazonaws.com 25
    Trying 54.149.142.243...
    Connected to ses-smtp-us-west-2-prod-14896026.us-west-2.elb.amazonaws.com.
    Escape character is '^]'.
    220 email-smtp.amazonaws.com ESMTP
    

    我main.cf档案是

    myhostname              = travelinsurancequotes.com.au
    mydomain                = travelinsurancequotes.com.au
    inet_interfaces = all
    
    mynetworks_style        = host
    local_destination_recipient_limit       = 300
    local_destination_concurrency_limit     = 5
    recipient_delimiter=+
    
    smtpd_banner            = $myhostname
    
    smtpd_sasl_auth_enable          = yes
    smtp_sasl_mechanism_filter = plain
    smtpd_sasl_local_domain         = $myhostname
    broken_sasl_auth_clients        = yes
    smtpd_helo_required             = yes
    smtp_use_tls = yes
    smtpd_use_tls = yes
    smtp_tls_note_starttls_offer = yes
    smtpd_tls_key_file = /etc/postfix/sslcerts/server.key
    smtpd_tls_cert_file = /etc/postfix/sslcerts/server.crt
    smtpd_tls_loglevel = 1
    smtpd_tls_received_header = yes
    smtpd_tls_session_cache_timeout = 3600s
    tls_random_source = dev:/dev/urandom
    
    relayhost = [email-smtp.us-west-2.amazonaws.com]:25
    smtp_sasl_auth_enable = yes
    smtp_sasl_security_options = noanonymous
    smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
    smtp_use_tls = yes
    smtp_tls_security_level = encrypt
    smtp_tls_note_starttls_offer = yes
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    
  • 共有1个答案

    甄阿苏
    2023-03-14

    AWS EC2对发送的邮件有某种限制。。

    我犯了这个错误,Amazon支持人员告诉我填写此表格以取消限制。

    https://aws.amazon.com/forms/ec2-email-limit-rdns-request

    我希望这有帮助

     类似资料:
    • 需要帮助:如何使用内嵌图像发送电子邮件? 响应返回200 OK,但未发送电子邮件。但是当我删除$信息时- 我用{{$讯息-

    • 问题内容: 我似乎找不到我编写的应该发送带有附件的电子邮件的php函数的问题。我已经为此苦苦挣扎了一段时间了。 编辑 问题是邮件的消息与文件混合在一起并作为附件发送。 问题答案: Artefacto让我更加关注输出,并且找到了解决方法:

    • 问题内容: 我正在尝试在带有附件的codeigniter上发送电子邮件。 我总是成功收到电子邮件。但是,我从未收到带有附件的文件。以下是代码,非常感谢所有评论。 问题答案: $ this- >电子邮件-> attach() 使您可以发送附件。将文件路径/名称放在第一个参数中。注意:使用文件路径,而不是URL。对于多个附件,请多次使用该功能。例如:

    • 我试图从我的应用程序发送电子邮件,我在android上的电子邮件客户端中看到了应有的链接,但当我检查电子邮件接收器时,没有链接。 这是我的代码: “文本”是html。 谢谢你。

    • 我的: 但是邮件不会发送到该地址,在控制台中,当我单击时,正在打印,但它不会发送任何电子邮件。 我用的是Django 1.3.7和Python 2.6。 不知道是版本的问题还是什么逻辑问题。

    • 我正在尝试使用CodeIgniter的电子邮件库发送电子邮件。这是我写的代码。 错误:这是我得到的错误。 遇到以下SMTP错误:0php_network_getaddresses:getaddrinfo失败:名称或服务未知无法发送数据:AUTH LOGIN发送AUTH LOGIN命令失败。错误:无法发送数据:邮件从:从:遇到以下SMTP错误:无法发送数据:RCPT TO:到:遇到以下SMTP错误: