ASP.NET中常用功能代码总结(7)——利用Jmail发送和接收邮件
ASP.NET中常用功能代码总结(7)——利用Jmail发送和接收邮件
整理:Terrylee
一.利用Jmail发送邮件
1
/// <summary>
2
/// 利用Jmail发送邮件
3
/// </summary>
4
private void SendMailByJmail()
5
{
6
///建立发邮件类
7
jmail.MessageClass oJmailMessage = new jmail.MessageClass();
8
9
/// 字符集
10
oJmailMessage.Charset = "GB2312";
11
12
///附件的编码格式
13
oJmailMessage.Encoding = "BASE64";
14
oJmailMessage.ContentType = "text/html";
15
16
///是否将信头编码成iso-8859-1字符集
17
oJmailMessage.ISOEncodeHeaders = false;
18
19
/// 优先级
20
oJmailMessage.Priority = Convert.ToByte(1);
21
22
///发送人邮件地址
23
oJmailMessage.From = TxtEmail.Text.Trim();
24
25
///发送人姓名
26
oJmailMessage.FromName = TxtName.Text.Trim();
27
28
/// 邮件主题
29
oJmailMessage.Subject = txtSubject.Text.Trim();
30
31
///身份验证的用户名
32
oJmailMessage.MailServerUserName = TxtSmtpUser.Text.Trim();
33
34
///用户密码
35
oJmailMessage.MailServerPassWord = TxtSmtpPwd.Text.Trim();
36
37
///添加一个收件人,抄送人和密送人的添加和该方法是一样的,只是分别使用AddRecipientCC和RecipientBCC两个属性
38
///要是需要添加多个收件人,则重复下面的语句即可。添加多个抄送和密送人的方法一样
39
oJmailMessage.AddRecipient(txtReciver.Text.Trim(),"","");
40
if("" != upFile.PostedFile.FileName)
41
{
42
string attpath = upFile.PostedFile.FileName;
43
oJmailMessage.AddAttachment(@attpath,true,attpath.Substring(attpath.LastIndexOf(".")+1,3));//添加附件
44
}
45
46
///邮件内容
47
oJmailMessage.Body = txtContent.Text.Trim();
48
49
if(oJmailMessage.Send(TxtSmtServer.Text.Trim(),false))
50
{
51
Response.Write("发送成功!");
52
}
53
else
54
{
55
Response.Write("发送失败,请检查邮件服务器的设置!");
56
}
57
58
oJmailMessage = null;
59
}
60

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

二.利用Jmail接收邮件
1
/// <summary>
2
/// 利用Jmail接收邮件
3
/// </summary>
4
private void ReciveByJmail()
5
{
6
///建立收邮件对象
7
jmail.POP3Class popMail = new POP3Class();
8
9
///建立邮件信息接口
10
jmail.Message mailMessage;
11
12
///建立附件集接口
13
jmail.Attachments atts;
14
15
///建立附件接口
16
jmail.Attachment att;
17
18
try
19
{
20
popMail.Connect(TxtPopUser.Text.Trim(),TxtPopPwd.Text.Trim(),TxtPopServer.Text.Trim(),Convert.ToInt32(TxtPopPort.Text.Trim()));
21
22
///如果收到邮件
23
if(0 < popMail.Count)
24
{
25
///根据取到的邮件数量依次取得每封邮件
26
for(int i=1;i <= popMail.Count;i++)
27
{
28
///取得一条邮件信息
29
mailMessage = popMail.Messages[i];
30
31
///取得该邮件的附件集合
32
atts = mailMessage.Attachments;
33
34
///设置邮件的编码方式
35
mailMessage.Charset = "GB2312";
36
37
///设置邮件的附件编码方式
38
mailMessage.Encoding = "Base64";
39
40
///是否将信头编码成iso-8859-1字符集
41
mailMessage.ISOEncodeHeaders = false;
42
43
///邮件的优先级
44
txtpriority.Text = mailMessage.Priority.ToString();
45
46
///邮件的发送人的信箱地址
47
txtSendMail.Text = mailMessage.From;
48
49
///邮件的发送人
50
txtSender.Text = mailMessage.FromName;
51
52
///邮件主题
53
txtSubject.Text = mailMessage.Subject;
54
55
///邮件内容
56
txtBody.Text = mailMessage.Body;
57
58
///邮件大小
59
txtSize.Text = mailMessage.Size.ToString();
60
61
for(int j=0;j<atts.Count;j++)
62
{
63
///取得附件
64
att = atts[j];
65
66
///附件名称
67
string attname = att.Name;
68
69
///上传到服务器
70
att.SaveToFile("e:\\attFile\\"+attname);
71
72
}
73
74
}
75
panMailInfo.Visible = true;
76
att = null;
77
atts = null;
78
}
79
else
80
{
81
Response.Write("没有新邮件!");
82
}
83
84
popMail.DeleteMessages();
85
popMail.Disconnect();
86
popMail = null;
87
}
88
catch
89
{
90
Response.Write("Warning!请检查邮件服务器的设置是否正确!");
91
}
92
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

支持TerryLee的创业产品Worktile
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)