求发送电子邮件的例子

特招 2004-08-27 09:42:57
求发送电子邮件的例子
最好有全的源代码 谢谢
...全文
381 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
圣殿骑士18 2004-09-01
  • 打赏
  • 举报
回复
现在一般的服务器都需要验证。

执行sendmail前需要验证:
NMSMTP控件的验证:

在发送前写入:
if (CheckBox1->Checked)//如果需要验证
{
strUserName = Base64Encode(Edit4->Text);//将用户名编码
strPassword=Base64Encode(Edit12->Text);//将密码编码

NMSMTP1->Transaction("auth login");//开始验证
NMSMTP1->Transaction(strUserName);
NMSMTP1->Transaction(strPassword);
}
ynotgo 2004-09-01
  • 打赏
  • 举报
回复
自己机器上装个smtp服务器也可以
特招 2004-09-01
  • 打赏
  • 举报
回复
我用outlook在本机上可以成功的发送邮件
host = smtp.163.com
特招 2004-09-01
  • 打赏
  • 举报
回复
执行到
Memo1->Lines->Add("Connected,sending message!");
都没问题
NMSMTP1->SendMail();到这就出问题了
错误提示:you are not authorized to send mail as <Mail form:<dgyanyong@163.com>>,
authentication is required!
好像是没有权限的意思吧
用outlook发送邮件的时候需要密码,这个不需要吗?
特招 2004-09-01
  • 打赏
  • 举报
回复
void __fastcall TForm1::Button1Click(TObject *Sender)
{
NMSMTP1->Host = Edit1->Text;
NMSMTP1->UserID = Edit2->Text;
NMSMTP1->PostMessageA->ToAddress->Clear();
NMSMTP1->PostMessageA->ToAddress->Text = Edit3->Text;
NMSMTP1->PostMessageA->FromAddress = Edit3->Text;
NMSMTP1->PostMessageA->Subject = "Test message";
NMSMTP1->PostMessageA->Body->Add("this is a test message!");
NMSMTP1->PostMessageA->Body->Add("if this message is delivered, the Cancel button (Button2) wasn't pressed fast enough!");
NMSMTP1->Connect();

}
//---------------------------------------------------------------------------
void __fastcall TForm1::NMSMTP1Connect(TObject *Sender)
{
Memo1->Lines->Add("Connected,sending message!");

NMSMTP1->SendMail();
ShowMessage("发送成功!");
}
我是这样写的
huzhangyou 2004-09-01
  • 打赏
  • 举报
回复
可以去我的blog看一下
huzhangyou2002.mblogger.cn

有一个多线程发送email的例子
ynotgo 2004-08-27
  • 打赏
  • 举报
回复
//部分代码
//.h
#ifndef UnitSendEmailH
#define UnitSendEmailH
#include <NMsmtp.hpp>
#include <Psock.hpp>
//---------------------------------------------------------------------------
class TEmail:public TNMSMTP
{
private:
AnsiString SmtpType;
AnsiString SmtpUserId;
AnsiString SmtpFromAdr;
AnsiString SmtpFromName;
AnsiString SmtpToAdr;
AnsiString SmtpToCabCopy;
AnsiString SmtpAtt;
AnsiString SmtpLocalProgram;
AnsiString SmtpReplyTo;
AnsiString SmtpBodyText0;
AnsiString SmtpBodyText1;
AnsiString SmtpSubject;
AnsiString SmtpHost;
USHORT SendedWStyle;
void __fastcall IsSendFail(TObject *Sender);
void __fastcall EmailServerConnect(TObject *Sender);
void __fastcall IsSendSuccess(TObject *Sender);
public:
bool __fastcall SendEmail(int WarnStyle);
__fastcall TEmail(TComponent* Owner);
__fastcall ~TEmail();
} ;
#endif


//.cpp
#pragma hdrstop

#include "UnitSendEmail.h"
#include <IniFiles.hpp>
#include <vcl.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)
__fastcall TEmail::TEmail(TComponent* Owner):TNMSMTP(Owner)
{
//读取发送电子邮电的设置参数
TIniFile*FEmailParam=new TIniFile(ExtractFilePath(Application->ExeName)+"WGSendEmail.ini");

//SmtpType=FEmailParam->ReadString("FROM", "SmtpType","");


SmtpFromName=FEmailParam->ReadString("FROM", "SmtpFromName","");
SmtpAtt=FEmailParam->ReadString("FROM", "SmtpAtt","");
SmtpLocalProgram=FEmailParam->ReadString("FROM", "SmtpLocalProgram","");
SmtpReplyTo=FEmailParam->ReadString("FROM", "SmtpReplyTo","");
SmtpBodyText0=FEmailParam->ReadString("FROM", "SmtpBodyText0","");
SmtpBodyText1=FEmailParam->ReadString("FROM", "SmtpBodyText1","");
SmtpSubject=FEmailParam->ReadString("FROM", "SmtpSubject","");
SmtpHost=FEmailParam->ReadString("FROM", "SmtpHost","");
SmtpUserId=FEmailParam->ReadString("FROM", "SmtpUserId","");

SmtpToAdr=FEmailParam->ReadString("TO", "SmtpToAdr","");
SmtpToCabCopy=FEmailParam->ReadString("TO", "SmtpToCabCopy","");

delete FEmailParam;

OnConnect = EmailServerConnect;
OnSuccess = IsSendSuccess;
OnFailure = IsSendFail;


}
__fastcall TEmail::~TEmail()
{


}

bool __fastcall TEmail::SendEmail(int WarnStyle)
{
WarnStyle = SendedWStyle;

try
{
Host = SmtpHost;
UserID = SmtpUserId;
Connect();
return 1;
}
catch(...)
{
return 0;
}
}
void __fastcall TEmail::IsSendFail(TObject *Sender)
{
Disconnect();
SendEmail(SendedWStyle);
}
void __fastcall TEmail::IsSendSuccess(TObject *Sender)
{
Disconnect();
}
void __fastcall TEmail::EmailServerConnect(TObject *Sender)
{

try
{
//发送邮件
SubType = mtPlain;//使用普通文本格式
EncodeType = uuMime;//采用MIME编码
PostMessage->FromAddress = SmtpUserId;
PostMessage->FromName = SmtpFromName;
PostMessage->ToAddress->Text = SmtpToAdr;
PostMessage->ToCarbonCopy->Text = SmtpToCabCopy;
PostMessage->Attachments->Text = SmtpAtt;
PostMessage->Subject = SmtpSubject;
PostMessage->LocalProgram = SmtpLocalProgram;
PostMessage->ReplyTo = SmtpReplyTo;
switch (SendedWStyle)
{
case 0: PostMessage->Body->Text = SmtpBodyText0;
break;
case 1: PostMessage->Body->Text = SmtpBodyText1;
break;
}
SendMail();
}
catch(...)
{
}
}

1,317

社区成员

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

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