var
SendMailExchang: TMessageExchanger;
lMessage: TMessage;
lAccount, FAccount: TMailAccount;
MailSystem: TMailSystem;
lMailContent: TMemoryStream;
FAttachment :String;
begin
SendMailExchang := TMessageExchanger.Create(nil);
lMessage := TMessage.Create(nil);
lAccount := TMailAccount.Create;
MailSystem := TMailSystem.Create;
try
SendMailExchang.MessageKind := TMessageKind.mkSend;
lAccount.SMTPHost := 'smtp.qq.com';
lAccount.SMTPPort := 25;
lAccount.POPHost := 'pop.qq.com';
lAccount.POPPort := 110;
//lAccount.MailAddress := 'xx@xx.com';
lAccount.UserID := 'xxx';
lAccount.Password := 'xxx';
//lAccount.AccountID := 'xx';
lAccount.Verify := True;
//lAccount.VerifyAccount := 'xx@qq.com';
//lAccount.VerifyPassword := 'xxx';
//lAccount.DifferPOP := True;
lMessage.From := 'xx@xx.com'; //发件人
lMessage.SendTo := 'xxx@xx.cn'; //收件人
lMessage.Subject := '告警提示!'; //mail tatil
lMessage.Body.Text := '邮件测试,多多打扰请见谅!';
lMessage.AddAttachment('C:\\test.txt');
//lMessage.LoadFromFile('C:\\test.txt');
lMessage.BCC :='xxx';
lMessage.CC :='';
lMessage.ContentFormatType := TContentFormatType.ftHTML; // 设置正文内容格式
if lAccount <> nil then
begin
lMailContent := TMemoryStream.Create; //用于存放邮件的正文
lMailContent.Clear;
lMessage.SaveToStream(lMailContent);
lMailContent.Position := 0; //移动流的指针
try
if lAccount.Verify then
begin
if lAccount.DifferPOP then
SendMailExchang.SMTPMessages.Add(lAccount.VerifyAccount,
lAccount.VerifyPassword, lAccount.SMTPHost,
lMessage.From, lMessage.SendTo, lMailContent, lAccount.SMTPPort)
else
SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
lAccount.SMTPHost, lMessage.From, lMessage.SendTo, lMailContent,
lAccount.SMTPPort);
//SendMailExchang.SMTPMessages.Add(lAccount.UserID, lAccount.Password,
//lAccount.SMTPHost, lMessage.From, 'qinlu20@163.com', lMailContent,
//lAccount.SMTPPort);
end
else
SendMailExchang.SMTPMessages.Add(lAccount.SMTPHost, lMessage.From,
lMessage.SendTo, lMailContent, lAccount.SMTPPort);
finally
lMailContent.Free;
lAccount.Free;
end;
SendMailExchang.Active := True; //发送邮件
dialogs.showmessage('邮件发送成功!');
end;
finally
lMessage.Free;
MailSystem.Free;
SendMailExchang.Free; // SendMailExchang对象一定要最后释放
end;
end;
在调用这一段代码之后,我的附件如果很小,只有几K的话,可以顺利发送,可附件稍微大一点的话,就不能接收到邮件,请问如何解决呢? |