我正在为数字营销制作电子邮件系统,并且使用Indy10更改发件人姓名时遇到问题,它始终采用帐户中注册的标准名称。我想改变这个名字。当使用TIdSmtp发送电子邮件时更改发件人
var
IdBody: TIdText;
begin
with IDSMTP do
begin
if Connected then
Disconnect();
Host := edtSMTP.Text;
Password := edtSenha.Text;
Port := sePorta.Value;
Username := edtRemetente.Text;
with IdSSLIOHandlerSocketOpenSSL.SSLOptions do
begin
SSLVersions := [];
if cbxSSLV2.Checked then
SSLVersions := [sslvSSLv2];
if cbxSSLV23.Checked then
SSLVersions := SSLVersions + [sslvSSLv23];
if cbxSSLV3.Checked then
SSLVersions := SSLVersions + [sslvSSLv3];
if cbxTLSV1.Checked then
SSLVersions := SSLVersions + [sslvTLSv1];
if cbxTLSV11.Checked then
SSLVersions := SSLVersions + [sslvTLSv1_1];
if cbxTLSV12.Checked then
SSLVersions := SSLVersions + [sslvTLSv1_2];
end;
case cbxAutenticacao.ItemIndex of
1: UseTLS := utNoTLSSupport;
2: UseTLS := utUseImplicitTLS;
3: UseTLS := utUseRequireTLS;
4: UseTLS := utUseExplicitTLS;
end;
Connect;
Authenticate;
with IdMessage do
begin
MessageParts.Clear;
Subject := edtAssunto.Text;
MessageParts.Clear;
IdBody := TIdText.Create(MessageParts);
try
IdBody.ContentType := 'text/html';
IdBody.Body.Text := mEngenharia.Text;
if edtAnexo.Text <> '' then
begin
if FileExists(edtAnexo.Text) then
TIdAttachmentFile.Create(MessageParts, TFileName(edtAnexo.Text));
end;
From.Address := edtDestinatario.Text;
Recipients.EMailAddresses := edtDestinatario.Text;
BccList.EMailAddresses := edtDestinatario.Text;
Send(IdMessage);
ShowMessage('Email enviado com sucesso!');
finally
FreeAndNil(IdBody);
end;
end;
end;
end;
请给出你的实际代码,并用一个例子来澄清你正在努力完成的事情。 'TIdMessage'具有'From'和'Sender'属性,'TIdSMTP'已经重载'Send()'方法,如果你想使用一个不同于'TIdMessage'中指定的发送者的' 。 –
@RemyLebeau我改变了这个帖子,ai想要以下内容,例如在hotmail中,第一列和名称,第二个主题,我想在那里更改名称,例如让公司向inves注册名称电子邮件 –
我看到您为发件人设置了与收件人地址相同的电子邮件地址,可能是因为您的SMTP服务器不允许这样做。 – whosrdaddy