贴上来是其中一个贴子,其他的内容在参考资料的网址里
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、网站空间、营销软件、网站建设、南涧网站维护、网站推广。
Visual Basic 6中发送邮件的新方法
用VB6编写发送邮件的程序,有多种E-mail组件可供选择,如MAPIMessages、IIS4.0附带的CDONTS(NTS Collaboration Data Objects)以及许多第三方厂商开发的Email软件等。本文介绍用CDONTS开发VB下的邮件程序方法。
1. 确认已安装SMTP服务器
首先,必须确认在IIS服务器上已安装SMTP服务器,这是安装Option Pack时被缺省安装的选项。如果SMTP服务器已安装,在System32目录下会存在一个名为cdonts.dll的文件。
2. 最简单的邮件发送程序
以下是一个最简单的邮件发送程序,它由me@hotmail.net向abc@263.net发出一封标题为“Title”、内容为“Hello”的E-mail:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
ObjMail.Send "me@hotmail.net ", "abc@263.net","Title","Hello"
Set objMail=nothing
End Sub
3. 发送邮件附件
如果有附加的文件需要随同邮件传送,可以使用CDONTS的AttachFile方法:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
With ObjMail
.From= "me@hotmail.net "
.To= "abc@263.net"
.Subject="Title"
.Body="Hello"
.AttachFile "c:\document\ sample.doc","sample.doc"
.Send
End With
Set objMail=nothing
End Sub
4. CDONTS组件常用属性和方法
CDONTS组件常用的属性和方法列举如下:
属性:
Version:返回CDONTS组件的版本号
MailFormat:邮件格式,1-普通文本类型;0-MIME类型
Cc:设置一个或多个参阅的邮件地址
From:邮件发送者的地址
To :邮件接受者的地址
Subject:标题
Body:内容
BodyFormat:内容格式,1-普通文本;0-超文本
方法:
AttachFile:附加一个文件
AttachURL:附加一个地址
Send:发送邮件
5. 发送超文本格式的E-mail
你一定见到过许多使用超文本格式的E-mail,其中不但可以有图片、声音,甚至还可以嵌入动画。如果给你的朋友也发送一封这样的邮件,一定会带给他(她)意外的惊喜,因为这用一般的邮件发送程序是无能为力的。以下使用CDONTS组件发送一个HTML格式的邮件,其中包含有一幅名为sample.gif的图片,程序如下:
Private Sub cmdSendMail_Click()
Dim objMail as Object
Set objMail=CreateObject("CDFONTS.DLL")
Dim strHTML as String
StrHTML=""
StrHTML= StrHTML+""
StrHTML = StrHTML +"
用CDONTS发送Email的例子"
StrHTML= StrHTML+"
"
StrHTML= StrHTML+"
以上例子嵌入了图片sample.gif
"
StrHTML= StrHTML+""
With ObjMail
.From= "me@hotmail.net "
.To= "abc@263.net"
.Subject="Title"
.Body=strHTML
.AttachURL "c:\mydata\sample.gif","sample.gif"
.BodyFormat=0
.EmailFormat=0
.Send
End With
Set objMail=nothing
End Sub
到这里,相信大家一定发现SMTP邮件处理的一个缺陷了。SMTP服务器接收你的输出消息,但并不做发送者名字和地址的验证,这本是由SMTP的异步发送机制所决定的,但有人可能别有用心地用它来假扮别人发送邮件!本文强烈建议各位切勿轻易试用,一旦让ISP知道你的行径,你的帐号极可能会被立即删除。
Dim Lines = System.IO.File.ReadAllLines("D:\zhege\qp.txt")
'邮件源代码应该是分行读取,替换掉这个数组就行。for代码段符合流的读取行方法(readline)。
Dim codeBuilder As New System.Text.StringBuilder
For Each code As String In Lines
code = code.Replace("==", "=")
If code.EndsWith("=") Then
code = code.Substring(0, code.Count - 1)
codeBuilder.Append(code)
ElseIf code "" Then
codeBuilder.AppendLine(code)
End If
Next
Dim reg As New System.Text.RegularExpressions.Regex("(=(\d|[A-F]){2}){1,}")
Dim match As System.Text.RegularExpressions.Match = Nothing
While reg.IsMatch(codeBuilder.ToString)
match = reg.Match(codeBuilder.ToString)
Dim Bytes As New List(Of Byte)
For Each cMatch As String In Replace(match.Value, "=", "", 1, 1).Split("="c)
Bytes.Add(CByte("h" cMatch))
Next
codeBuilder = codeBuilder.Replace(match.Value, System.Text.Encoding.Default.GetString(Bytes.ToArray))
End While
MsgBox(codeBuilder.ToString)
我只测试了一段qp代码,可能有误。如果qp不是Default编码,结果可能是乱码,需要注意
在Identity2.0里面封装了IIdentityMessageService接口,可以用来发送接收邮件。
看看
Imports System.Threading.Tasks
Imports System.Security.Claims
Imports Microsoft.AspNet.Identity
Imports Microsoft.AspNet.Identity.EntityFramework
Imports Microsoft.AspNet.Identity.Owin
Imports Microsoft.Owin
Imports Microsoft.Owin.Security
public function SendAsync(message as IdentityMessage) as task
dim credentialUserName = "邮箱登录名"
dim sentFrom = "你的邮箱地址"
dim pwd= "邮箱登录密码";
dim client as new System.Net.Mail.SmtpClient("smtp服务器地址")
client.Port = 25'mtp邮件服务器端口
client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network
client.UseDefaultCredentials = false
dim credentials as new System.Net.NetworkCredential(credentialUserName, pwd)
client.EnableSsl = true
client.Credentials = credentials
dim mail as new System.Net.Mail.MailMessage(sentFrom, message.Destination)
mail.Subject = message.Subject
mail.Body = message.Body
return client.SendMailAsync(mail)
end function
在这篇文章里, 我们在尽可能广的范围广内讲解使用 ASP.NET发送电子邮件,包括选择电子邮件格式, 优先权, 附件和电子邮件内码。
现在让我们逐步探索使用ASP.NET发送电子邮件。我们将使用VB来说明例子, 但是我们最后的代码包括VB 和C # 。
Step1: 包括命名空间
System.Web.Util 命名空间在ASP.NET 里。这命名空间包含送电子邮件的所有必要对象。
对象是:
对象 总结
SmtpMail 代表邮件系统。发送电子邮件。
MailMessage 消息, 例如发信人地址, 收信人地址等。
MailFormat 格式,邮件的格式- HTML, 文本, 等
MailAttachment 代表电子邮件附件
MailEncoding enum 代表任一个内码譬如Base64 或UUencode 。
MailPriority enum 设置邮件优先权。价值: 高, 低, 正常
% @Import Namespace = "System.Web.Util " %
OK第一部已经完成了
步骤2: MailMessage 对象示例
声明MailMessage对象。
Dim mailObj AS new MailMessage
MailMessage 对象属性:
属性 描述
From 发信人的地址
To 收信人的地址
Subject 邮件主题
Body 邮件正文
cc 邮件副本接受人地址
bcc 邮件副本接受人地址比显示在邮件中(密件)
Priority 邮件的优先权
BodyEncoding 邮件内码
BodyFormat 邮件格式,html或文本
Attachments 邮件附件
以下的代码片断将展示MailMessage 对象。
mailObj.From = "abc@mydomain.com "
mailObj.To = Request.Form ( "to ")
mailObj.Subject = "subject of the mail "
mailObj.Body = "Message of the mail "
发送邮件使用SmtpMail 对象Send 方法。以下代码片断被使用送邮件
SmtpMail.Send(mailObj)
vb.net完整源代码
%@page language= "VB " %
%@Import Namespace= "System.Web.Util " %
HTML
head
title 欢迎使用chenyangasp示例程序
/title
/head
BODY
SCRIPT LANGUAGE= "VB " RUNAT= "server "
' 这个方法当提交时访问服务器
Sub SendMail (Obj As Object, E As EventArgs)
Dim mailObj AS new MailMessage
'设置邮件的发送及接收地址
mailObj.From = Request.Form( "From ")
mailObj.To = Request.Form( "To ")
mailObj.Subject = "Subject Of the Mail "
mailObj.Body = "Body of the Mail "
'html格式的邮件
mailObj.BodyFormat = MailFormat.Html
'设置为高级优先权
mailObj.Priority = MailPriority.High
'为邮件添加附件
'注意:这里我们创建了一个mailattachment对象添加一个附件到邮件中
mailObj.Attachments.Add(new MailAttachment( "c:\test.doc "))
'使用SmtpMail对象发送邮件
SmtpMail.Send(mailObj)
End Sub
/SCRIPT
asp:label ID= "Headingmsg " Text= "Enter Your Email Address: " RUNAT= "server "/
FORM METHOD= "post " RUNAT= "server "
Email Recipient: INPUT TYPE= "text " NAME= "to " br
Email Sender: INPUT TYPE= "text " NAME= "from "
INPUT TYPE= "submit " NAME= "Submit " VALUE= "Send Mail " RUNAT= "server " OnServerClick= "SendMail "
/FORM
/BODY
C#完整源代码
%@page language= "C# " %
%@Import Namespace= "System.Web.Util " %
HTML
head
title 欢迎使用chenyangasp示例程序
/title
/head
BODY
SCRIPT LANGUAGE= "C# " RUNAT= "server "
// 这个方法当提交时访问服务器
public void SendMail (Object Obj, EventArgs E)
{
MailMessage mailObj = new MailMessage();
// 设置邮件的发送及接收地址
mailObj.From = Request.Form( "From ");
mailObj.To = Request.Form( "To ");
mailObj.Subject = "Subject Of the Mail ";
mailObj.Body = "Body of the Mail ";
// html格式的邮件
mailObj.BodyFormat = MailFormat.Html;
// 设置为高级优先权
mailObj.Priority = MailPriority.High;
// 为邮件添加附件
// 注意:这里我们创建了一个mailattachment对象添加一个附件到邮件中
mailObj.Attachments.Add(new MailAttachment( "c:\\test.doc "));
// 使用SmtpMail对象发送邮件
SmtpMail.Send(mailObj);
}
/SCRIPT
asp:label ID= "Headingmsg " Text= "Enter Your Email Address: " RUNAT= "server "/
FORM METHOD= "post " RUNAT= "server "
Email Recipient: INPUT TYPE= "text " NAME= "to " br
Email Sender: INPUT TYPE= "text " NAME= "from "
INPUT TYPE= "submit " NAME= "Submit " VALUE= "Send Mail " RUNAT= "server " OnServerClick= "SendMail "
/FORM
/BODY