您好我正在尝试从delphi(indy)向gmail地址发送消息。当我转到Gmail时,我在垃圾邮件文件夹中找到了我的邮件。如果我尝试从Web发送与PHPMailer相同的消息,它可以正常工作。这是代码。
由于
//setup SMTP
SMTP.Port := 25;
SMTP.ConnectTimeout := 1000;
SMTP.Host := 'smtp.xxxxxx.it';
SMTP.Username := 'info@xxxxxx.it';
SMTP.Password := 'xxxxxx';
SMTP.Connect();
if SMTP.Authenticate then
begin
//setup mail message
MailMessage.From.Name := 'xxxxxx';
MailMessage.From.Address := 'info@xxxxxx.it';
MailMessage.Recipients.EMailAddresses := 'xxxxxx@gmail.com';
MailMessage.Subject := ledSubject.Text;
MailMessage.ContentType := 'multipart/mixed';
htmpart := TIdText.Create(MailMessage.MessageParts, nil);
htmpart.Body := Body.Lines;
htmpart.ContentType := 'text/html';
//send mail
try
try
SMTP.Send(MailMessage);
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
end;
答案 0 :(得分:4)
可能我发现了这个问题。我在“原始模式”中查看了消息,我在标题中找到了谷歌说“MISSING ID”,我尝试添加此代码:
MailMessage.MsgId := '1234567890@drinkmessage.it';
MailMessage.ExtraHeaders.Values['Message-Id'] := MailMessage.MsgId;
现在似乎工作正常。
感谢
答案 1 :(得分:1)
您是否尝试更改HeloName
的{{1}}和MailAgent
?如果您使用与PHPMailer相同的域名,我的猜测是GMail将来自您的应用程序的电子邮件视为垃圾邮件,因为它不会检测/喜欢发送它们的应用程序。