如何编程实现email发送信件,不必带收信功能? 我想编写一个小程序实现发送邮件的功能,不带收信功能就可以。主要是成功发送就可以。比如完成以后运行可以发送指定文本 ,或者以附件形式发送到指定邮箱!哪位朋友可以提供一下源代码或者编译好的程序 谢谢了^_^ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我以前用VB写的,主要就是和SMTP服务器对话,邮件内容需要编码strSubject = Text1.Text strTextContent = Text2.Text strIME = "MIME-Version: 1.0" & vbCrLf strIME = strIME & "Content-Type: multipart/mixed;boundary=""B1""" & vbCrLf & vbCrLf strIME = strIME & "--B1" & vbCrLf strIME = strIME & "Content-type: text/plain; charset=gb2312" & vbCrLf & vbCrLf strIME = strIME & strTextContent & vbCrLf & vbCrLf Dim fso As New FileSystemObject If fso.FileExists(Text4.Text) Then Encade64FileTOFile Text4.Text, App.Path & "\ad.tmp" Dim strFile As String, fileName As String Dim t As TextStream Set t = fso.OpenTextFile(App.Path & "\ad.tmp") strFile = t.ReadAll t.Close Kill App.Path & "\ad.tmp" fileName = fso.GetFileName(Text4.Text) strIME = strIME & "--B1" & vbCrLf strIME = strIME & "Content-Transfer-Encoding: base64" & vbCrLf strIME = strIME & "Content-Disposition: attachment;filename=""" & fileName & """" & vbCrLf & vbCrLf strIME = strIME & strFile & vbCrLf & vbCrLf End If Set fso = Nothing strIME = strIME & "--B1--" & vbCrLf Winsock1.Close Winsock1.LocalPort = 0 Winsock1.Connect strServer, 25 m_State = MAIL_CONNECTPrivate Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim strServerResponse As String Dim strResponseCode As String Winsock1.GetData strServerResponse strResponseCode = Left(strServerResponse, 3) If strResponseCode = "250" Or _ strResponseCode = "220" Or _ strResponseCode = "354" Or _ strResponseCode = "334" Or _ strResponseCode = "235" Then Select Case m_State Case MAIL_CONNECT m_State = MAIL_HELO Winsock1.SendData "HELO " & strServer & vbCrLf Case MAIL_HELO m_State = MAIL_USER Winsock1.SendData "AUTH LOGIN" & vbCrLf '登陆服务器" Case MAIL_USER m_State = MAIL_PASS Winsock1.SendData Base64_Encode(strUid) & vbCrLf '校验用户名" Case MAIL_PASS m_State = mail_login Winsock1.SendData Base64_Encode(strPwd) & vbCrLf '校验用户密码" Case mail_login m_State = MAIL_from Winsock1.SendData "MAIL FROM:" & strFrom & vbCrLf '发送人邮件地址" Case MAIL_from m_State = MAIL_RCPTTO Winsock1.SendData "RCPT TO:" & strTo & vbCrLf '接收人邮件地址" Case MAIL_RCPTTO m_State = MAIL_DATA Winsock1.SendData "DATA" & vbCrLf Case MAIL_DATA m_State = MAIL_DOT Winsock1.SendData "From:" & Text3.Text & "<" & Text3.Text & ">" & vbCrLf Winsock1.SendData "To:" & strTo & "<" & strTo & ">" & vbCrLf Winsock1.SendData "Date:" & Now & vbCrLf Winsock1.SendData "Subject:" & strSubject & vbCrLf Winsock1.SendData strIME & vbCrLf Winsock1.SendData "." & vbCrLf '邮件送完毕 Case MAIL_DOT m_State = MAIL_QUIT Winsock1.SendData "QUIT" & vbCrLf '关闭会话 MsgBox "留言成功,谢谢您的支持!" Unload Me Case MAIL_QUIT Winsock1.Close End Select Else Winsock1.Close End IfDebug.Print strServerResponseEnd SubPrivate Function Base64_Encode(strSource) As String 'base6加密算法 Const BASE64_TABLE As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" Dim strTempLine As String Dim j As Integer For j = 1 To (Len(strSource) - Len(strSource) Mod 3) Step 3 strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j, 1)) Mod 4) * 16 _ + Asc(Mid(strSource, j + 1, 1)) \ 16) + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 _ + Asc(Mid(strSource, j + 2, 1)) \ 64) + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 2, 1)) Mod 64) + 1, 1) Next j If Not (Len(strSource) Mod 3) = 0 Then If (Len(strSource) Mod 3) = 2 Then strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 _ + Asc(Mid(strSource, j + 1, 1)) \ 16 + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 + 1, 1) strTempLine = strTempLine & "=" ElseIf (Len(strSource) Mod 3) = 1 Then strTempLine = strTempLine + Mid(BASE64_TABLE, Asc(Mid(strSource, j, 1)) \ 4 + 1, 1) strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 + 1, 1) strTempLine = strTempLine & "==" End If End If Base64_Encode = strTempLineEnd Function 谢谢 楼上的 可是看上去貌似很复杂 ^_^呵呵 有没有编译好的直接可以执行的程序 比如我调用一下就可以把本地磁盘的如:d:\**.txt文本的内容或者附件方式发送到指定邮箱里面……呵呵 http://vckbase.com/document/viewdoc/?id=651调用默认的程序发送,你看行不 Onpaint()函数为什么在窗口打开的时候经常会执行2次呢 还是那个问题- - 谁有源江科技的<vc编程资源大全2002>的界面代码? 请问,我的OnPrepareDC出了什么问题? vc中获取tcc.exe的出错信息的问题 如何在程序中控制两个时钟? 菜鸟问题:两个对话框中的变量如何传递? 庆祝VC天堂网开张,送分! www.vcheaven.net 请问,哪个函数可以删除掉不空的目录? 请问如何用c++编写这样一个程序? Winsock UDP编程中,大家怎么处理ICMP错误? 在tabcontrol里放置了一个TREEVIEW控件,但总是无法选中这个TREEVIEW?怎么选中它
strTextContent = Text2.Text strIME = "MIME-Version: 1.0" & vbCrLf
strIME = strIME & "Content-Type: multipart/mixed;boundary=""B1""" & vbCrLf & vbCrLf
strIME = strIME & "--B1" & vbCrLf
strIME = strIME & "Content-type: text/plain; charset=gb2312" & vbCrLf & vbCrLf
strIME = strIME & strTextContent & vbCrLf & vbCrLf
Dim fso As New FileSystemObject
If fso.FileExists(Text4.Text) Then
Encade64FileTOFile Text4.Text, App.Path & "\ad.tmp"
Dim strFile As String, fileName As String
Dim t As TextStream
Set t = fso.OpenTextFile(App.Path & "\ad.tmp")
strFile = t.ReadAll
t.Close
Kill App.Path & "\ad.tmp"
fileName = fso.GetFileName(Text4.Text)
strIME = strIME & "--B1" & vbCrLf
strIME = strIME & "Content-Transfer-Encoding: base64" & vbCrLf
strIME = strIME & "Content-Disposition: attachment;filename=""" & fileName & """" & vbCrLf & vbCrLf
strIME = strIME & strFile & vbCrLf & vbCrLf
End If
Set fso = Nothing
strIME = strIME & "--B1--" & vbCrLf
Winsock1.Close
Winsock1.LocalPort = 0
Winsock1.Connect strServer, 25
m_State = MAIL_CONNECT
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strServerResponse As String
Dim strResponseCode As String Winsock1.GetData strServerResponse
strResponseCode = Left(strServerResponse, 3)
If strResponseCode = "250" Or _
strResponseCode = "220" Or _
strResponseCode = "354" Or _
strResponseCode = "334" Or _
strResponseCode = "235" Then
Select Case m_State
Case MAIL_CONNECT
m_State = MAIL_HELO
Winsock1.SendData "HELO " & strServer & vbCrLf
Case MAIL_HELO
m_State = MAIL_USER
Winsock1.SendData "AUTH LOGIN" & vbCrLf '登陆服务器"
Case MAIL_USER
m_State = MAIL_PASS
Winsock1.SendData Base64_Encode(strUid) & vbCrLf '校验用户名"
Case MAIL_PASS
m_State = mail_login
Winsock1.SendData Base64_Encode(strPwd) & vbCrLf '校验用户密码"
Case mail_login
m_State = MAIL_from
Winsock1.SendData "MAIL FROM:" & strFrom & vbCrLf '发送人邮件地址"
Case MAIL_from
m_State = MAIL_RCPTTO
Winsock1.SendData "RCPT TO:" & strTo & vbCrLf '接收人邮件地址"
Case MAIL_RCPTTO
m_State = MAIL_DATA
Winsock1.SendData "DATA" & vbCrLf
Case MAIL_DATA
m_State = MAIL_DOT
Winsock1.SendData "From:" & Text3.Text & "<" & Text3.Text & ">" & vbCrLf
Winsock1.SendData "To:" & strTo & "<" & strTo & ">" & vbCrLf
Winsock1.SendData "Date:" & Now & vbCrLf
Winsock1.SendData "Subject:" & strSubject & vbCrLf
Winsock1.SendData strIME & vbCrLf
Winsock1.SendData "." & vbCrLf '邮件送完毕
Case MAIL_DOT
m_State = MAIL_QUIT
Winsock1.SendData "QUIT" & vbCrLf '关闭会话
MsgBox "留言成功,谢谢您的支持!"
Unload Me
Case MAIL_QUIT
Winsock1.Close
End Select
Else
Winsock1.Close
End If
Debug.Print strServerResponse
End Sub
Private Function Base64_Encode(strSource) As String 'base6加密算法
Const BASE64_TABLE As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
Dim strTempLine As String
Dim j As Integer
For j = 1 To (Len(strSource) - Len(strSource) Mod 3) Step 3
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j, 1)) Mod 4) * 16 _
+ Asc(Mid(strSource, j + 1, 1)) \ 16) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, ((Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 _
+ Asc(Mid(strSource, j + 2, 1)) \ 64) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 2, 1)) Mod 64) + 1, 1)
Next j
If Not (Len(strSource) Mod 3) = 0 Then
If (Len(strSource) Mod 3) = 2 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) \ 4) + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 _
+ Asc(Mid(strSource, j + 1, 1)) \ 16 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j + 1, 1)) Mod 16) * 4 + 1, 1)
strTempLine = strTempLine & "="
ElseIf (Len(strSource) Mod 3) = 1 Then
strTempLine = strTempLine + Mid(BASE64_TABLE, Asc(Mid(strSource, j, 1)) \ 4 + 1, 1)
strTempLine = strTempLine + Mid(BASE64_TABLE, (Asc(Mid(strSource, j, 1)) Mod 4) * 16 + 1, 1)
strTempLine = strTempLine & "=="
End If
End If
Base64_Encode = strTempLine
End Function
有没有编译好的直接可以执行的程序 比如我调用一下就可以把本地磁盘的如:d:\**.txt文本的内容或者附件方式发送到指定邮箱里面……呵呵
调用默认的程序发送,你看行不