⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 delphi让你发送flash电子邮件.txt

📁 大量Delphi开发资料
💻 TXT
📖 第 1 页 / 共 2 页
字号:

Stream[0] := Chr(Quads); 
if Quads > 0 then 
begin 
EncLine := Stream+#13#10; 
Encoded.Write(EncLine[1], Length(EncLine)); 
end; 

Result := Encoded.Size; 
end; 

{对参数Decoded字符串进行Base64编码,返回编码后的字符串} 
function EncodeString(Decoded:string):String; 
var 
mmTemp,mmDecoded:TMemoryStream; 
strTemp:TStrings; 
begin 
mmTemp := TMemoryStream.Create; 
mmDecoded:=TMemoryStream.Create; 
strTemp:=TStringList.Create; 
strTemp.Add(Decoded); 
strTemp.SaveToStream(mmTemp); 
mmTemp.Position := 0; 
{剔除mmTemp从strTemp中带来的字符#13#10} 
mmDecoded.CopyFrom(mmTemp,mmTemp.Size-2); 
{对mmDecoded进行Base64编码,由mmTemp返回编码后的结果} 
EncodeBASE64(mmTemp,mmDecoded); 
{获得Base64编码后的字符串} 
mmTemp.Position:=0; 
strTemp.LoadFromStream(mmTemp); 
{返回结果必须从strTemp[0]中获得,如果使用strTemp.Text会 
带来不必要的字符#13#10} 
Result:=strTemp[0]; 
end; 

procedure TForm1.btnOpenClick(Sender: TObject); 
begin 
{打开对话框,选择SWF文件} 
if OpenDialog1.Execute then 
begin 


nd; 
end;  
procedure TForm1.btnSendClick(Sender: TObject); 
var 
mmSwfFile,mmEncoded:TMemoryStream; 
iResult:Integer; 
strsTemp:TStrings; 
strContents:TStringList; 
i:Integer; 
begin 
{验证用户输入信息} 
if txtTo.Text='' then 
begin 
ShowMessage('请输入收信人!'); 
Exit; 
end; 
if txtFrom.Text='' then 
begin 
ShowMessage('请输入发信人!'); 
Exit; 
end; 
if txtSmtpServer.Text='' then 
begin 
ShowMessage('请输入SMTP服务器!'); 
Exit; 
end; 
if txtPort.Text='' then 
begin 
ShowMessage('请输入端口号!'); 
Exit; 
end; 
if txtSwfFile.Text='' then 
begin 
ShowMessage('请选择SWF文件!'); 
Exit; 
end; 

{检验服务器认证的用户名和密码} 
if chkSmtpVerify.Checked = True then 
if (txtUserName.Text='') or (txtPassword.Text='') then 
begin 
ShowMessage('您已选择SMTP服务器需要认证'+#13#10+'请输入用户名和密码!'); 
Exit; 
end; 

{设置SMTP服务器地址、端口} 
NMSMTP1.Host:=txtSmtpServer.Text; 
NMSMTP1.Port:=StrToInt(txtPort.Text); 
{断开原来的连接,保证TForm1.NMSMTP1Connect中服务器认证的执行} 
if NMSMTP1.Connected then 
begin 
NMSMTP1.Disconnect; 
end; 

{连接服务器} 
NMSMTP1.Connect; 
{创建流} 
mmSwfFile:=TMemoryStream.Create; 
mmEncoded:=TMemoryStream.Create; 
{加载文件至流mmSwfFile} 
mmSwfFile.LoadFromFile(txtSwfFile.Text); 
{对mmSwfFile进行Base64编码,mmEncoded为编码后内容} 
iResult:=EncodeBASE64(mmEncoded,mmSwfFile); 
strsTemp:=TStringList.Create; 
mmEncoded.Position:=0; 
strsTemp.LoadFromStream(mmEncoded); 
{----生成邮件内容----} 
strContents:=TStringList.Create; 
strContents.Add('--------------SwfEmail by JDH'); 
strContents.Add('Content-Type: text/html; charset=gb2312'); 
strContents.Add('Content-Transfer-Encoding: 8bit'); 
{注意:空行是邮件格式所必需的!} 
strContents.Add(''); 
strContents.Add('< HTML >< HEAD >< TITLE >SWFEMAIL< /TITLE >< /HEAD >'); 
strContents.Add('< BODY >'); 
{添加邮件正文内容} 
for i:=0 to memContents.Lines.Count-1 do 
begin 
strContents.Add(memContents.Lines[i] + '< br >'); 
end; 
{添加SWF文件相关内容} 
strContents.Add('< object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/ 
cabs/flash/swflash.cab#version=5,0,0,0">'); 
strContents.Add('< param name=movie value="cid:jdh_swfemail@001" >'); 
strContents.Add('< param name=quality value=high >'); 
strContents.Add('< embed src="cid:jdh_swfemail@001" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi? 
P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" >'); 
strContents.Add('< /embed>< /object >< /BODY >< /HTML >'); 
strContents.Add(''); 
strContents.Add('--------------SwfEmail by JDH'); 
strContents.Add('Content-Type: image/swf'); 
strContents.Add('Content-ID: < jdh_swfemail@001 >'); 
strContents.Add('Content-Transfer-Encoding: base64'); 
strContents.Add('Content-Disposition: inline; filename="'+ExtractFileName(txtSwfFile.Text)+'"' ); 
strContents.Add(''); 
strContents.Add(strsTemp.Text); 
strContents.Add(''); 
{----生成邮件内容结束----} 
{设置邮件发送信息} 
NMSMTP1.PostMessage.FromAddress := txtFrom.Text; 
NMSMTP1.PostMessage.FromName := txtFrom.Text; 
NMSMTP1.PostMessage.ToAddress.Text := txtTo.Text; 
NMSMTP1.PostMessage.Body.Text := strContents.Text; 
NMSMTP1.PostMessage.Subject := txtSubject.Text; 
{发送电子邮件} 
NMSMTP1.SendMail; 
ShowMessage('邮件发送成功!'); 
end; 

procedure TForm1.NMSMTP1Connect(Sender: TObject); 
var 
strUserName,strPassword:string; 
begin 
{如果SMTP服务器需要认证,则进行认证} 
if chkSmtpVerify.Checked = True then 
begin 
{对用户名和密码进行Base64编码} 
strUserName:=EncodeString(txtUserName.Text); 
strPassword:=EncodeString(txtPassword.Text); 
{进行认证,输入编码后的用户名、密码} 
nmsmtp1.Transaction('auth login'); 
nmsmtp1.Transaction(strUserName); 
nmsmtp1.Transaction(strPassword); 
end; 
end; 

procedure TForm1.NMSMTP1SendStart(Sender: TObject); 
begin 
{在邮件发送开始时修改邮件的消息头,标明邮件为多部分组成} 
NMSMTP1.FinalHeader.Values['Content-Type'] := ' 
multipart/related; boundary="------------SwfEmail by JDH"'; 
end; 

procedure TForm1.chkSmtpVerifyClick(Sender: TObject); 
begin 
{根据是否需要SMTP服务器认证,改变用户名、密码状态} 
if chkSmtpVerify.Checked = True then 
begin 
txtUserName.Enabled := True; 
txtUserName.Color:= clWindow; 
txtPassword.Enabled := True; 
txtPassword.Color:= clWindow;  
end 
else 
begin 
txtUserName.Enabled := False; 
txtUserName.Color:= clSilver; 
txtPassword.Enabled := False; 
txtPassword.Color:= clSilver; 
end; 
end; 
end. 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -