如何用VB.Net收发邮件?

gqyz01sw 2011-08-08 09:43:14
如何用VB.Net接收和发送邮件?
最好能告诉我原理,还有代码请提供一个类库,而不是窗体
3q----
...全文
236 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjljk2000 2011-08-09
  • 打赏
  • 举报
回复
mark
大刘0417 2011-08-09
  • 打赏
  • 举报
回复
边顶边学。
CLICK人生 2011-08-09
  • 打赏
  • 举报
回复
'***************************************设置发自动发邮**********************
'创建发件连接,根据你的发送邮箱的SMTP设置填充
Dim smtp As New System.Net.Mail.SmtpClient("MailServerIP")

'创建邮件
Dim mail As New MailMessage()
mail.From = New System.Net.Mail.MailAddress("ht_gms@mail.huataico.com") '发件人

'定义附件, 参数为附件文件名, 包含路径, 推荐使用绝对路径
'如果不需要附件,下面三行可以不要
'Dim ff As New System.Net.Mail.Attachment("附件文件")
Dim ff As New System.Net.Mail.Attachment("附件路径")
'主题编码
mail.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312")

'邮件正文件编码
mail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312") '("Base64")



If iType = 0 Then

'mail.To.Add("wickykeung@toppy.com.hk;clarechan@toppy.com.hk;frankieyung@toppy.com.hk;applesiu@toppy.com.hk") '收件人
'mail.CC.Add("ht_linmin@mail.huataico.com;ht_xing@mail.huataico.com") '抄送
mail.To.Add("ht_xing@mail.huataico.com") '收件人
mail.CC.Add("ht_linmin@mail.huataico.com") '抄送

mail.Subject = System.DateTime.Now.AddDays(-1).ToShortDateString & " TOPPY走货数据" '邮件标题
babzbcbvbr 2011-08-08
  • 打赏
  • 举报
回复

Imports Microsoft.VisualBasic
Imports System.Net.Mail
Imports System.Net.Mime

Namespace RPT.Core

''' <summary>
''' 邮件发送类
''' </summary>
''' <remarks></remarks>
Public Class EmailSender


''' <summary>
''' 发送邮件
''' </summary>
''' <param name="accepterEmail">收信地址</param>
''' <param name="senderEmail">发信地址</param>
''' <param name="senderEmailPassword">发信email密码</param>
''' <param name="senderName">发信人别名</param>
''' <param name="eamilTitle">邮件标题</param>
''' <param name="emailContent">邮件内容</param>
''' <param name="attachment">附件列表</param>
''' <param name="serverHost">邮件服务器主机名</param>
''' <param name="serverPort">邮件服务器端口号</param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function Send(ByVal accepterEmail As String _
, ByVal senderEmail As String _
, ByVal senderEmailPassword As String _
, ByVal senderName As String _
, ByVal eamilTitle As String _
, ByVal emailContent As String _
, ByVal attachment As String() _
, ByVal serverHost As String _
, Optional ByVal serverPort As String = "25") As Boolean
Dim flag As Boolean = False
Dim arrEmail() As String = accepterEmail.Split(";")

Dim msg As MailMessage = Nothing
Dim Data As Attachment = Nothing
Dim client As SmtpClient = Nothing

Try
msg = New MailMessage
'收信人
For Each accepterEmail In arrEmail
If accepterEmail.Trim <> "" Then
msg.To.Add(accepterEmail.Trim())
End If
Next
'发信人
msg.From = New MailAddress(senderEmail, senderName, System.Text.Encoding.UTF8)
'邮件标题
msg.Subject = eamilTitle
'邮件标题编码
msg.SubjectEncoding = System.Text.Encoding.UTF8
'邮件内容
msg.Body = emailContent
'邮件内容编码
msg.BodyEncoding = System.Text.Encoding.UTF8
'是否是HTML邮件
msg.IsBodyHtml = False
'邮件优先级
msg.Priority = MailPriority.High
'添加附件
If (attachment IsNot Nothing) AndAlso (attachment.Length > 0) Then
For Each att As String In attachment
If (String.IsNullOrEmpty(att) = False) AndAlso (att.Trim() <> String.Empty) Then
Data = New Attachment(att, MediaTypeNames.Application.Octet)
Dim disposition As ContentDisposition = Data.ContentDisposition
disposition.CreationDate = System.IO.File.GetCreationTime(att)
disposition.ModificationDate = System.IO.File.GetLastWriteTime(att)
disposition.ReadDate = System.IO.File.GetLastAccessTime(att)
'加入邮件附件
msg.Attachments.Add(Data)
End If
Next
End If
client = New SmtpClient
client.UseDefaultCredentials = False
If senderEmail.IndexOf("@") > 0 Then
senderEmail = senderEmail.Substring(0, senderEmail.IndexOf("@"))
End If
'发信账号密码
client.Credentials = New System.Net.NetworkCredential(senderEmail, senderEmailPassword)
'邮件服务端口
client.Port = IIf(String.IsNullOrEmpty(serverPort) = True, 25, Integer.Parse(serverPort))
'SMTP服务
client.Host = serverHost
'经过ssl加密
client.EnableSsl = False
client.Send(msg)
Return True
Catch ex As Exception
Return False
Finally
If Data IsNot Nothing Then
Data.Dispose()
End If
If msg IsNot Nothing Then
msg.Dispose()
End If
Data = Nothing
msg = Nothing
client = Nothing
End Try
End Function

End Class

End Namespace


收件没做过
gqyz01sw 2011-08-08
  • 打赏
  • 举报
回复
没人知道吗
沐NeMo 2011-08-08
  • 打赏
  • 举报
回复
/// <summary>
/// 利用JMAIl接收邮件
/// </summary>
/// <param name="mailname">油箱用户名称</param>
/// <param name="mailpwd">油箱密码</param>
/// <param name="poptity">等级</param>
/// <param name="senders">发送者</param>
/// <param name="sendmail">发件人地址</param>
/// <param name="subject">主题</param>
/// <param name="body">内容</param>
/// <param name="path">路径</param>
/// <param name="data">数据</param>
/// <param name="num1">输出参数</param>
public static void ReciveMail(string mailname,string mailpwd,ref string poptity,ref string senders,ref string sendmail,ref string subject,ref string body,ref string path,ref string data,out int num1,string paths)
{
num1=1;
jmail.POP3Class popMail = new jmail.POP3Class();
jmail.Message mailMessage;
jmail.Attachments atts;
jmail.Attachment att;
string pop="pop."+mailname.Substring(mailname.IndexOf("@")+1);
popMail.Connect(mailname,mailpwd,pop,110);
if(0<popMail.Count)
{
for(int i=1;i<=popMail.Count;i++)
{
mailMessage=popMail.Messages[i];
atts=mailMessage.Attachments;
mailMessage.Charset = "GB2312";
mailMessage.Encoding = "Base64";
mailMessage.ISOEncodeHeaders = false;
poptity = mailMessage.Priority.ToString();
senders = mailMessage.FromName;
sendmail = mailMessage.From;
subject =mailMessage.Subject;
body = mailMessage.Body;
data=mailMessage.Date.ToString();
string size = mailMessage.Size.ToString();
for(int j=0;j<atts.Count;j++)
{
if(j == 0)
{
//取得附件名称
att = atts[j];
/**////附件名称

string attname = att.Name;
// int k = attname.LastIndexOf(".");
// string time = DateTime.Now.ToString();
// time = time.Replace("-","");
// time = time.Replace(" ","");
// time = time.Replace(":","");
// attname = attname.Insert(attname.LastIndexOf("."),"-"+time);
// /**////上传到服务器
//path="D:\\Mail\\mailre\\"+attname;
string all=paths+"\\Mail\\MailReceive\\";
path=all+attname;
DirectoryInfo dir=new DirectoryInfo(all);

if(dir.Exists)
{
att.SaveToFile(path);
}
else
{
dir.Create();
att.SaveToFile(path);
}
}


}
popMail.DeleteSingleMessage(i);//删除邮件
}
att = null;
atts = null;
popMail.Disconnect();
popMail = null;
}
else
{

num1=0;
att = null;
atts = null;
popMail.Disconnect();
popMail = null;
}


}

gqyz01sw 2011-08-08
  • 打赏
  • 举报
回复
接收邮件怎么弄啊?

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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