【发布时间】:2015-06-20 16:17:19
【问题描述】:
我正在制作一个用于数字营销的电子邮件系统,但在使用 Indy10 更改发件人姓名时遇到问题,它始终采用帐户中注册的标准名称。我想更改此名称。
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重载了采用可选AFrom参数的Send()方法,如果您想使用与TIdMessage中指定的不同的发件人。 -
@RemyLebeau 我更改了帖子,ai 想要以下内容,例如在 hotmail 中,第一列和名称,第二个主题,我想在那里更改名称,把公司例如投资在电子邮件中注册的名称
-
我看到你给发件人设置了与收件人地址相同的电子邮件地址,可能是你的 SMTP 服务器不允许这样做。
-
使用假地址?这是垃圾邮件发送者的标志。
-
恐怕这行不通,您的电子邮件将被标记为垃圾邮件。我觉得这里有语言障碍,你需要在这里解释更多你想要达到的目标..
标签: delphi email delphi-xe7 indy10