首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我发了很多电子邮件

我发了很多电子邮件
EN

Server Fault用户
提问于 2011-01-28 11:42:21
回答 3查看 3.9K关注 0票数 1

我正在运行一个Ubuntu10.04LTS服务器和亚马逊EC2。刚刚启动了社区,安装了apache2,php5,sendmail.就这样吧。

没有改变配置中的任何东西。昨晚我给大约2000名收件人发了一份通讯。

mail.log显示消息被接受以进行传递,如下所示:

代码语言:javascript
复制
Jan 27 16:40:42 ip-10-48-213-66 sendmail[24725]: p0RGefNE024725: to=quatember@zoovienna.at, ctladdr=www-data (33/33), delay=00:00:01, xdelay=00:00:01, mailer=relay, pri=67364, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (p0RGefKv024726 Message accepted for delivery)

但它似乎像这样被反弹回来了:

代码语言:javascript
复制
Jan 27 16:40:42 ip-10-48-213-66 sm-mta[24728]: p0RGefKv024726: to=<quatember@zoovienna.at>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=00:00:01, xdelay=00:00:00, mailer=esmtp, pri=157483, relay=smtp.zoovienna.at. [83.64.127.201], dsn=4.0.0, stat=Deferred: 450 4.1.8 <www-data@ip-10-48-213-66.eu-west-1.compute.internal>: Sender address rejected: Domain not found

或者这个

代码语言:javascript
复制
Jan 27 20:13:39 ip-10-48-213-66 sm-mta[10058]: p0RH5QCC032505: to=<inga.bertram@online.de>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=03:08:13, xdelay=00:00:01, mailer=esmtp, pri=1777483, relay=mx00.kundenserver.de. [212.227.15.150], dsn=4.0.0, stat=Deferred: 421 invalid sender domain 'ip-10-48-213-66.eu-west-1.compute.internal' (misconfigured dns?)

或者这个

代码语言:javascript
复制
Jan 27 20:13:39 ip-10-48-213-66 sm-mta[10058]: p0RH2CUw031458: to=<urs.nueesch@bluewin.ch>, ctladdr=<www-data@ip-10-48-213-66.eu-west-1.compute.internal> (33/33), delay=03:11:27, xdelay=00:00:00, mailer=esmtp, pri=1777483, relay=mxzhb.bluewin.ch. [195.186.18.144], dsn=4.0.0, stat=Deferred: 451 MAIL FROM: <www-data@ip-10-48-213-66.eu-west-1.compute.internal> Unable to verify MX-Record for domain ip-10-48-213-66.eu-west-1.compute.internal

总是多次而且还在跑..。

我注意到/etc/mail/trusted-users是空的。但是,当电子邮件发出时,这应该是可以的。

/etc/mail/local-host-names看起来就像

代码语言:javascript
复制
localhost
ip-10-48-213-66.eu-west-1.compute.internal

现在,如果我使用以下php命令发送邮件:

代码语言:javascript
复制
var_dump(mail('joehopf@gmail.com','subject!','body!','From: from@blah.com','-f from@flimmit.com'));

我收到以下邮件:

代码语言:javascript
复制
Delivered-To: joehopf@gmail.com
Received: by 10.42.219.8 with SMTP id hs8cs55591icb;
        Fri, 28 Jan 2011 03:28:51 -0800 (PST)
Received: by 10.213.35.209 with SMTP id q17mr4059475ebd.53.1296214129940;
        Fri, 28 Jan 2011 03:28:49 -0800 (PST)
Return-Path: <from@flimmit.com>
Received: from ip-10-48-213-66.eu-west-1.compute.internal (flimmit.com [79.125.4.119])
        by mx.google.com with ESMTPS id u13si41731903eeh.3.2011.01.28.03.28.20
        (version=TLSv1/SSLv3 cipher=RC4-MD5);
        Fri, 28 Jan 2011 03:28:49 -0800 (PST)
Received-SPF: pass (google.com: best guess record for domain of from@flimmit.com designates 79.125.4.119 as permitted sender) client-ip=79.125.4.119;
Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of from@flimmit.com designates 79.125.4.119 as permitted sender) smtp.mail=from@flimmit.com
Received: from ip-10-48-213-66.eu-west-1.compute.internal (localhost [127.0.0.1])
    by ip-10-48-213-66.eu-west-1.compute.internal (8.14.3/8.14.3/Debian-9.1ubuntu1) with ESMTP id p0SBRYQF000694
    for <joehopf@gmail.com>; Fri, 28 Jan 2011 11:27:34 GMT
Received: (from www-data@localhost)
    by ip-10-48-213-66.eu-west-1.compute.internal (8.14.3/8.14.3/Submit) id p0SBRYCv000693;
    Fri, 28 Jan 2011 11:27:34 GMT
Date: Fri, 28 Jan 2011 11:27:34 GMT
Message-Id: <201101281127.p0SBRYCv000693@ip-10-48-213-66.eu-west-1.compute.internal>
X-Authentication-Warning: ip-10-48-213-66.eu-west-1.compute.internal: www-data set sender to from@flimmit.com using -f
To: joehopf@gmail.com
Subject: subject!
X-PHP-Originating-Script: 1000:test.php
From: from@blah.com

body!

我还注意到发送邮件需要相当长的时间,我知道这是一个问题,如果有什么问题,解决困境。

我的sendmail路径没有在php.ini中配置,但是php信息显示了以下内容应该是正确的:/usr/sbin/sendmail -t -i

这是一封来自通讯工具(phplist)的电子邮件,它通过并没有显示x身份验证警告头。

我能以某种方式解决这个问题吗?或者是否有一种方法可以确定谁收到了邮件,谁没有收到,所以我可以重新发送?

任何帮助都是徒劳无功。

最新情况:

我刚刚注意到,邮件工具可能没有设置-f参数。我修好了这个。现在,当地的地址仍然显示,但这是同样的情况,在其他电子邮件,从专业名单,如格勒姆。

所以,在上面的电子邮件中,我用-f参数制作了。现在还可以吗?还是仍然有问题?

EN

回答 3

Server Fault用户

回答已采纳

发布于 2011-01-28 11:51:37

您的sendmail配置错误。它使用内部EC2域名,ip-10-48-213-66,be西部-1,计算,内部,作为发送域,由于无法查找和检查,电子邮件被拒绝。你需要在里面放一个真正的互联网域名,它可以反向查找你发送的IP地址--你必须向亚马逊申请从EC2发送电子邮件的许可,这样才能让他们为你配置反向域名。

从EC2服务器发送电子邮件在任何情况下都很棘手,因为许多EC2 IP地址都在黑名单中。你最好看看亚马逊刚刚推出的新的简单电子邮件服务。

票数 3
EN

Server Fault用户

发布于 2011-01-28 11:51:18

检查谁收到电子邮件的一个好方法是使用Return-Path标头为每个收件人生成一个唯一的弹跳地址,这样您就可以解析您的弹出式邮箱,并匹配一个接一个地将电子邮件弹回给您。

我知道您正在使用EC2,实际上不建议直接从EC2运行您的邮件服务,因为它的可交付率非常低,而且是可变的(正是您的问题),我在EC2上也遇到了这个问题,我刚刚决定与一个外部SMTP提供商签约,以获得所有的可交付性并迅速解决,这是足够便宜的成本,特别是在如此低的数量。

我用的是AuthSMTP (http://www.authsmtp.com/),它们既便宜又可靠。

票数 0
EN

Server Fault用户

发布于 2012-02-17 13:37:43

当我执行以下步骤时,我解决了这个问题:

代码语言:javascript
复制
# vi /etc/mail/sendmail.mc

MASQUERADE_AS(domain.com)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(masquerade_entire_domain)dnl
MASQUERADE_DOMAIN(domain.com)dnl

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

# yum install sendmail-cf

# /etc/init.d/sendmail restart
票数 -1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/228064

复制
相关文章

相似问题

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