请问如何用IdSMTP 发送附件

zjlxl 2004-03-30 07:33:21
我要用IdSMTP的验证功能,但是它如何发送附件?
NMSMTP 可以发送附件,但不知道如何进行验证(大多数)

谢谢各位
...全文
233 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
joinboy211 2004-06-09
  • 打赏
  • 举报
回复
关注
rzh 2004-05-14
  • 打赏
  • 举报
回复
int intIndex;

//IdMsgSend do
//{begin
IdMsgSend->Body->Assign(Memo1->Lines);
IdMsgSend->From->Text = Edit_EmailAddress->Text;
IdMsgSend->Recipients->EMailAddresses = edtTo->Text; //{ To: header }
IdMsgSend->Subject = edtSubject->Text; //{ Subject: header }
IdMsgSend->Priority = TIdMessagePriority(cboPriority->ItemIndex);// { Message Priority }
IdMsgSend->CCList->EMailAddresses = edtCC->Text;// {CC}
IdMsgSend->BccList->EMailAddresses = edtBCC->Text; //{BBC}
if (chkReturnReciept->Checked)
{//{We set the recipient to the From E-Mail address }
IdMsgSend->ReceiptRecipient->Text = IdMsgSend->From->Text;
}
else
{// {indicate that there is no receipt recipiant}
IdMsgSend->ReceiptRecipient->Text = "";
}
//end;}
int SmtpAuthType=cboAuthType->ItemIndex;
switch (SmtpAuthType)
{
// {authentication settings}
case 0:
SMTP->AuthenticationType = atNone;
break;
case 1:
SMTP->AuthenticationType = atLogin; //{Simple Login}
break;
};
SMTP->UserId = Edit_UserId->Text;
SMTP->Password = Edit_Password->Text;

// {General setup}
SMTP->Host = Edit_SMTPHost->Text;
SMTP->Port = StrToInt(Edit_SMTPPort->Text.Trim());

// {now we send the message}
SMTP->Connect();
try
{
SMTP->Send(IdMsgSend);
}
catch(...)
{
}
SMTP->Disconnect();
cuiyu616ok 2004-04-01
  • 打赏
  • 举报
回复
void __fastcall Tfrm_send::tbEditHeadClick(TObject *Sender)
{
if (Edit2->Text=="")
{
Application->MessageBox("请输入收件人地址!","提示",MB_OK+MB_ICONASTERISK);
return;
}
if (mail_address==""||mail_smtp==""||mail_accounts==""||mail_pass=="")
{
Application->MessageBox("请先进行邮箱帐号设置!","提示",MB_OK+MB_ICONASTERISK);
return;
}

try
{
IdMessage1->Body->Assign(Memo1->Lines); //内容

IdMessage1->Subject=Edit1->Text; //标题

// IdMessage1->From->Address="yu.hermit@sina.com"; //发件人地址
IdMessage1->From->Address=mail_address; //发件人地址
// IdMessage1->From->Name="yuyu6906"; //发件人
IdMessage1->From->Name=mail_user; //发件人
IdMessage1->Recipients->Clear();
IdMessage1->Recipients->Add();
IdMessage1->Recipients->Items[0]->Address=Edit2->Text;//收件人
IdMessage1->Recipients->Items[0]->Name="";

IdMessage1->CCList->EMailAddresses = Edit4->Text;// 抄送
// IdMessage1->BccList->EMailAddresses = cBcc; //暗抄

if (Edit3->Items->Count>0) //发送附件
{
for(int i=0;i<Edit3->Items->Count;i++)
{
IdMessage1->MessageParts->Add();
new TIdAttachment(IdMessage1->MessageParts,Edit3->Items->Strings[i]);
}
}

// IdSMTP1->Host="smtp.sina.com.cn";
IdSMTP1->Host=mail_smtp;
// IdSMTP1->Username="yu.hermit"; //邮箱帐号
IdSMTP1->Username=mail_accounts; //邮箱帐号
// IdSMTP1->Password="";
IdSMTP1->Password=mail_pass;

Animate1->Visible=true;
Animate1->Active=true;

IdSMTP1->Connect(0);

IdSMTP1->Send(IdMessage1);
IdSMTP1->Disconnect();
Application->MessageBox("发送成功!","提示",MB_OK+MB_ICONASTERISK);
Edit1->Text="";
Edit2->Text="";
Edit4->Text="";
Memo1->Lines->Clear();
Memo1->Lines->Add("您好:");
Memo1->Lines->Add("");
Memo1->Lines->Add("");
Memo1->Lines->Add("");
Memo1->Lines->Add(" 致");
Memo1->Lines->Add("礼!");
Memo1->Lines->Add(" "+Date());
Edit3->Items->Clear();
Edit2->SetFocus();

Animate1->Visible=false;
Animate1->Active=false;
}
catch(...)
{
IdSMTP1->Disconnect();
Application->MessageBox("发送失败!\n请确认您已经连接到互联网上!","提示",MB_OK+MB_ICONASTERISK);
// ShowMessage("发送失败!\n请确认您已经连接到互联网上");
Animate1->Visible=false;
Animate1->Active=false;
}

}
13571863167 2004-03-31
  • 打赏
  • 举报
回复
关注
用Delphi2010 实现邮件附件收发功能 TIdPOP3组件简介 TIdPOP3 是用来接收邮件服务器的邮件信息到用户端的一个组件。它实现了RFC 1939协议。 在使用TIdPOP3组件时需设置它的几个成员属性。 Host :指定邮件服务器,一般为pop3邮件服务器的地址,如 pop3.126.com。 Username :用户名,也就是邮箱名,如billanking2002@126.com。 Password :邮箱密码,在进行收发邮件时组件需要凭密码进行登录。 其它成员属性 Connected:返回它与邮件服务器的连接状态,这true表示已经连接。 CheckMessages:邮件数,如果连接服务器成功,则可以获得服务器端的邮件数。 成员函数 procedure Connect(const ATimeout: Integer = IdTimeoutDefault); 与服务器连接函数。参数为无效连接时等待的毫秒数。 function RetrieveHeader(const MsgNum: Integer; AMsg: TIdMessage): Boolean; 接收邮件头信息,它有两个参数,MsgNum表示在接收第几个邮件,从1开始,AMsg为邮件消息组件实例。 function Retrieve(const MsgNum: Integer; AMsg: TIdMessage): Boolean; 接收邮件主体信息,它与 RetrieveHeader的参数是一样的。接收的邮件内容将保存在AMsg中。 function Delete(const MsgNum: Integer): Boolean; 删除邮件服务器中第几个邮件。从1开始。 procedure Disconnect; override; 关闭连接。 TIdMessage组件简介 TIdMessage用来支持邮件消息协议,如POP3,SMTP,NNTP等。TIdMessage支持多用途Internet邮件扩展(MIME)协议。 常用的TIdMessage的属性: Subject:邮件主题,这个字符串经过BASE64编码的。所以在使用时需对它进行解码。 MessageParts:这是TIdMessageParts类的一个实例,它用来存储邮件的信息。如邮件内容及附件信息。在进行解析时需要判断它是否为附件或文本,如果为附件时,其文件名是经过BASE64编码的。判断常量分别为TIdText , TIdAttachment。 Body:这是个字符串列表,包含构成该邮件的正文内容。 Form:发送邮件者的地址信息。 Recipients:收件人地址信息。 BccList:抄送地址列表。 CharSet:指示邮件信息中使用的字符集。 ContentType:指定MIME媒体数据类型,描述正文中包含的数据,使用户代理决定如何显示数据,常用的有text/html,text/xml。 TIdSMTP组件简介 TIdSMTP是TIdMessageClient派生出的一个简单邮件传输协议和SMTP客户端。 它的主要功能是发送邮件信息。 常用的属性: Host :SMTP邮件服务器的地址,如smtp.126.com。它与上面的POP3地址不一样。 AuthenticationType:服务器认证类型,它有atNone,atLogin两种,即不需要认证和需要凭用户名和密码进行认证。 Username:用户名,这里与TIdPOP3 有点不一样,即它不需要后缀,如billanking2002 Password:邮箱登录密码。如果AuthenticationType设置了atLongin则必须设置密码和用户名。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧