SendGrid 的自动化安全性通过 CNAME 记录自动执行 SPF 和 DKIM。它甚至允许直接使用域名注册商拥有我们自己的 SPF 和 DKIM 记录。
他们如何做到这一点而不与现有 SPF 和 DKIM 记录串通代替域?
我无法找到这个问题的答案,所以如果以前有人问过这个问题,请原谅我。
我正在与非营利组织合作,他们拥有非营利帐户的 Google Workspace。我正在努力设置 SPF/DKIM/DMARC 记录,除了一种情况外,它们工作得很好。
我们有两个不同的域名:whedoncon.com 和 thehellmouth.org。我们的一些用户在两个域上都有电子邮件(即 user@whedoncon.com 和 user@thehellmouth.org 发送给同一个人)。我可以从每个域单独发送电子邮件,并且它们可以很好地通过 SPF、DKIM 和 DMARC。当我将域设置为能够相互发送时,问题就出现了。
我添加了 user@whedoncon.com 的功能,以便能够以 user@thehellmouth.org 的身份发送邮件。问题似乎是当我以 user@whedoncon.com 身份登录并以 user@thehellmouth.org 身份发送消息时。查看电子邮件标头,似乎因为我以 user@whedoncon.com 身份登录,所以无论我选择哪个帐户发送电子邮件,它都会将返回路径设置为 whedoncon.com 地址。
这样做的问题是,每当我以 user@thehellmouth.org 身份发送电子邮件时,即使 SPF 和 DKIM 都通过了,它也会导致 DMARC 失败。这似乎是因为返回路径显示为 user@whedoncon.com,但 DKIM 正在查看 hellmouth.org。
因此,TL:DR,谷歌似乎总是默认使用登录帐户作为返回路径,而不是实际发送的辅助帐户。有没有办法更改返回路径,使其与电子邮件来源的帐户匹配,而不是与我登录的帐户匹配?
有一种方法可以检索有关域(和子域)的DNS记录的所有(TXT)条目吗?
我的目标是验证我的域的配置:www.rosposhop.com我正确地为一些子域设置了多个SPF和DKIM记录
rosposhop.com
md.rosposhop.com (SPF+DKIM)
mg.rosposhop.com (SPF+DKIM)
Run Code Online (Sandbox Code Playgroud)
(所以我总共有5个TXT项目)
现在,如果我问dig
或者host -a
,我只得到第一个TXT项目,而我应该有完整的TXT项目列表.
我错了吗?
$ dig rosposhop.com TXT
; <<>> DiG 9.9.5-3ubuntu0.1-Ubuntu <<>> rosposhop.com TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14774
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;rosposhop.com. IN TXT
;; ANSWER SECTION:
rosposhop.com. 2362 IN TXT "google-site-verification=udcP944OqB1PldDn1ML"
;; Query …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用PHPMailer Class使用DKIM签署电子邮件,但我无法让它工作.
当我在gmail的电子邮件中看到标题时,我发现该类已成功在电子邮件标题中注入DKIM,但gmail甚至不关心.
问题是我查看了LinkedIn电子邮件的标题,我发现他们正在使用2个DKIM标题,DomainKey-Signature
&DKIM-Signature
.
有什么不同?这就是为什么Gmail无法验证我的电子邮件?你是否建议使用任何替代和强大的类来在php上使用域密钥签署电子邮件?
谢谢
我正在编写一个允许用户向动态创建的邮件列表发送电子邮件的应用程序.例如,用户可以发送电子邮件至my-team@site.com(该网站是体育联盟的联盟管理网站),该电子邮件将发送给该用户团队的每个人.我正在试图弄清楚电子邮件标题应该是什么来正确传递电子邮件并使所有From和To字段看起来正确.
在Gmail中,当您收到来自邮件列表的电子邮件时(我正在查看来自Google群组的电子邮件),它表示它来自发送该邮件的人并且已将其发送到列表地址,但该电子邮件是送给我的.除了Delivered-To:标题之外,我的地址不会出现在任何标题中.这是一些谷歌魔术,还是我可以做同样的事情?
奖金问题:我正在使用Postfix + OpenDKIM来签署电子邮件.如果From域匹配我指定的域,它将签署消息,但如果Sender域匹配则不签名.如何告诉它使用Sender域.
我有一个邮件服务器与SPF,DKIM和反向DNS配置良好.我可以使用以下内容向Outlook.com发送电子邮件:
echo "This is only a test" | mail username@outlook.com
Run Code Online (Sandbox Code Playgroud)
当我尝试使用相同的服务器通过PHP发送电子邮件时,会出现问题:
$header .= "Return-Path: Some User <mailsender@mydomain.com>\r\n";
$header .= "From: Some User <mailsender@mydomain.com>\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "User-Agent: Some User Mail Sender\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
mail("usernama@outlook.com","My title", "Message body", $header);
Run Code Online (Sandbox Code Playgroud)
我尝试使用appmaildev.com验证我的消息,报告说:
DKIM result: fail (wrong body hash: <*** body hash ***>)
Run Code Online (Sandbox Code Playgroud)
即使出现此错误,Outlook.com也表示已通过DKIM验证,但PHP邮件功能发送的所有邮件都会转到垃圾邮件文件夹.以下是通过Bash和PHP直接发送的消息示例:http://pastebin.com/ndXJszic
谁能帮我?
谢谢.
编辑从标题中 删除\ r \n后,DKIM正文哈希错误消失了.但我还是无法向Outlook发送电子邮件......
基于这个问题,我决定签署从ASP.NET.MVC发送的电子邮件,以减少电子邮件的垃圾邮件分数,但我在某处有一些错误.
码:
public void SendEmail(MailMessage mailMessage)
{
string domain = "kup-nemovitost.cz";
var message = MimeMessage.CreateFromMailMessage(mailMessage);
HeaderId[] headers = new HeaderId[] { HeaderId.From, HeaderId.Subject, HeaderId.Date };
DkimCanonicalizationAlgorithm headerAlgorithm = DkimCanonicalizationAlgorithm.Relaxed;
DkimCanonicalizationAlgorithm bodyAlgorithm = DkimCanonicalizationAlgorithm.Relaxed;
string dkimPath = Path.Combine(ConfigHelper.GetDataPath(), "DKIM");
string privateKey = Path.Combine(dkimPath, "kup-nemovitost.cz.private.rsa");
DkimSigner signer = new DkimSigner(privateKey, domain, "mail")
{
SignatureAlgorithm = DkimSignatureAlgorithm.RsaSha1,
AgentOrUserIdentifier = "@" + domain,
QueryMethod = "dns/txt",
};
message.Prepare(EncodingConstraint.SevenBit);
message.Sign(signer, headers, headerAlgorithm, bodyAlgorithm);
using (var client = new MailKit.Net.Smtp.SmtpClient())
{
client.Connect("localhost", 25, false); …
Run Code Online (Sandbox Code Playgroud) 没有外部库,是否有图书馆或方法?我使用apache james作为我的邮件服务器,目前发送这样的电子邮件:
public void sendMessage(String to, String subject, String content) {
MimeMessage message = new MimeMessage(session);
try {
message.addRecipients(Message.RecipientType.TO, to);
message.setFrom(new InternetAddress(from));
message.setSubject(subject);
message.setContent(content, "text/html; charset=utf-8");
Transport.send(message);
} catch (MessagingException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但我想事先用DKIM与电子邮件签名.我知道我需要在james服务器上实现DKIM签名并计划使用jDKIM来实现这一点,我也理解我需要使用像www.port25.com这样的东西来创建密钥,但是如何在java之前实际签署电子邮件我发了出去?
我正在向附带附件的用户发送邮件.未签名的邮件获得.pdf文件(大约64kb)并且工作正常.
但是,当我为其他用户签名时,PDF文件大约为64 B,无法打开.
签约时我没有对附件做任何事情,但是......所以这很奇怪.
我的签名代码:
email = SpecificMethods.DKIMSign(email);
internal static MailMessage DKIMSign(MailMessage email)
{
var privateKey = PrivateKeySigner.Create(@"-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----");
var domainKeySigner = new DomainKeySigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" });
email.DomainKeySign(domainKeySigner);
var dkimSigner = new DkimSigner(privateKey, "***.com", "**", new string[] { "mime-version", "date", "subject", "from", "to", "content-type" });
email.DkimSign(dkimSigner);
return email;
}
Run Code Online (Sandbox Code Playgroud)
并最终发送它.没有什么特别的事发生在那里.
为什么我的依恋会"破"?
我在使用 google 时遇到问题,无法将电子邮件发送到任何 gmail 或 Gsuite 电子邮件,但从邮件服务器日志中获取了报告
Feb 17 12:16:30 server postfix/smtp[19451]: 853E35E55A: to=<xxx@gmail.com>,
relay=aspmx.l.google.com[209.85.144.27]:25, delay=0.38, delays=0.05/0/0.15/0.17,
dsn=5.7.26, status=bounced (host aspmx.l.google.com[209.85.144.27] said: 550-5.7.26 This
message does not have authentication information or fails to 550-5.7.26 pass
authentication checks. To best protect our users from spam, the 550-5.7.26 message has
been blocked. Please visit 550-5.7.26
https://support.google.com/mail/answer/81126#authentication for more 550 5.7.26
information. w19si7586061qkp.34 - gsmtp (in reply to end of DATA command))
Run Code Online (Sandbox Code Playgroud)
而且我没有被列入任何垃圾邮件网站的黑名单(我确实检查了大多数提供阻止列表检查器的网站)
我的 SPF、DKIM 或 DMARC 也没有任何问题
这是 SPF 检查器 https://prnt.sc/26xomwz
这是 …