拜托,我正在尝试解决这个“问题”超过 12 个小时......几乎快疯了!我认为使用 Delphi 和 Synapse ( http://synapse.ararat.cz )一次为多个收件人(目的地)发送相同的电子邮件是不可能的。请有人告诉我我错了:)
好吧,我有一个 sEmail 变量,我在其中获取用分号 (;) 分隔的电子邮件,就像这样:
sEmails := 'email1@test.com.br;email2@teste.com.br';
这是我正在使用的代码:
dSMTP := TSMTPSend.Create;
dSMsg := TMimeMess.Create;
Try
With dSMsg, Header Do
Begin
Date := Now;
Priority := mp_Normal;
CharsetCode := ISO_8859_1;
From := 'email@gmail.com';
ToList.Delimiter := ';';
ToList.DelimitedText := sEmails;
Subject := 'Message Subject';
dPart := AddPartMultipart('mixed', nil);
AddPartHTML('<h1>Message Text</h1>', dPart);
EncodeMessage;
end;
With dSMTP Do
Begin
TargetHost := 'smtp.gmail.com';
TargetPort := '587';
AutoTLS := True;
UserName := 'email@gmail.com';
Password := 'password';
Try
If Login Then
Begin
If MailFrom('email@gmail.com', Length('email@gmail.com')) Then
If MailTo(sEmails) Then MailData(dSMsg.Lines);
Logout;
end;
Except
On E: Exception Do ShowMessage(E.Message);
end;
end;
Finally
dSMsg.Free;
dSMTP.Free;
end;
我已经尝试过这样的:
If Login Then
Begin
If MailFrom('email@gmail.com', Length('email@gmail.com')) Then
If MailTo(dSMsg.Header.ToList[0]) Then MailData(dSMsg.Lines);
Logout;
end;
...但随后仅发送了第一封电子邮件:(即使将其余电子邮件添加到 Header.CCList 中。
在另一个测试中,我尝试将点分号更改为逗号(,),但问题相同......
拜托,拜托,有人能告诉我我做错了什么吗?
谢谢!