类似方式和帮助很多,这里结合自身使用时的一个Exception纪录下来。
code:
1
//lbAttaches is a ListBox
2
private void btnAttach_Click(object sender, EventArgs e)
3
{
4
DialogResult result = openFileDialog1.ShowDialog();
5
if (result==DialogResult.OK)
6
{
7
foreach (string var in openFileDialog1.FileNames)
8
{
9
lbAttaches.Items.Add(var);
10
}
11
}
12
}
13
14
private void btnRemoveAttach_Click(object sender, EventArgs e)
15
{
16
for (int i = 0; i < lbAttaches.SelectedItems.Count; i++)
17
{
18
lbAttaches.Items.Remove(lbAttaches.SelectedItems[i]);
19
}
20
}
21
22
//这里没有处理多个地址的情况,可以使用常用的逗号分隔来加多个地址
23
private void btnSend_Click(object sender, EventArgs e)
24
{
25
MailMessage message=new MailMessage();
26
message.From=new MailAddress (txtFrom.Text);
27
28
message.To .Add (txtTo.Text);
29
30
message.CC.Add (txtCC.Text);
31
32
if ( txtBCC .Text != "")
33
message.Bcc .Add (txtBCC.Text);
34
35
message.Subject=txtSubject.Text;
36
message.Body=txtBody.Text;
37
foreach (string var in lbAttaches.Items)
38
{
39
Attachment attachment=new Attachment(var);
40
message.Attachments.Add(attachment);
41
}
42
43
SmtpClient client = new SmtpClient(txtHost.Text);
44
client.Credentials = new NetworkCredential(this.txtUserName.Text , txtPassword.Text );
45
//client.UseDefaultCredentials = true;
46
client.Send(message);
47
48
}
//lbAttaches is a ListBox2
private void btnAttach_Click(object sender, EventArgs e)3
{4
DialogResult result = openFileDialog1.ShowDialog();5
if (result==DialogResult.OK)6
{7
foreach (string var in openFileDialog1.FileNames)8
{9
lbAttaches.Items.Add(var);10
}11
}12
}13

14
private void btnRemoveAttach_Click(object sender, EventArgs e)15
{16
for (int i = 0; i < lbAttaches.SelectedItems.Count; i++)17
{18
lbAttaches.Items.Remove(lbAttaches.SelectedItems[i]);19
}20
}21

22
//这里没有处理多个地址的情况,可以使用常用的逗号分隔来加多个地址23
private void btnSend_Click(object sender, EventArgs e)24
{25
MailMessage message=new MailMessage();26
message.From=new MailAddress (txtFrom.Text);27
28
message.To .Add (txtTo.Text);29
30
message.CC.Add (txtCC.Text);31
32
if ( txtBCC .Text != "")33
message.Bcc .Add (txtBCC.Text);34

35
message.Subject=txtSubject.Text;36
message.Body=txtBody.Text;37
foreach (string var in lbAttaches.Items)38
{39
Attachment attachment=new Attachment(var);40
message.Attachments.Add(attachment);41
}42

43
SmtpClient client = new SmtpClient(txtHost.Text);44
client.Credentials = new NetworkCredential(this.txtUserName.Text , txtPassword.Text );45
//client.UseDefaultCredentials = true;46
client.Send(message);47

48
}
特别注意的是,如果使用的是163的smtp.163.com,那么Credential的useName 必须与发件人的一致.否则会说异常
"
不允许使用邮箱名称。 服务器响应为: authentication is required...."

浙公网安备 33010602011771号