C#邮件发送
代码:
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Net;
- using System.Net.Mail;
- using System.Net.Mime;
- using System.IO;
- namespace SendMailExample
- {
- public partial class FormSendMail : Form
- {
- public FormSendMail()
- {
- InitializeComponent();
- }
- private void FormSendMail_Load(object sender, EventArgs e)
- {
- txtSmtpServer.Text = "smtp.qq.com";
- txtSend.Text = "heuandmei@qq.com";
- txtDisplayName.Text = "kwoMan;
- txtPassword.Text = "";//密码
- txtReceive.Text = "18393899@qq.com";
- txtTitle.Text = "发信测试";
- txtBody.Text = "This is a test(测试)";
- rbtnNoSSL.Checked = true;
- }
- private void btnAddFiles_Click(object sender, EventArgs e)
- {
- OpenFileDialog odlg = new OpenFileDialog();
- odlg.CheckFileExists = true;
- //只接收有效的文件名
- odlg.ValidateNames = true;
- //允许一次选择多个文件作为附件
- odlg.Multiselect = true;
- if (odlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- lstFiles.Items.AddRange(odlg.FileNames);
- }
- }
- private void btnSend_Click(object sender, EventArgs e)
- {
- this.Cursor = Cursors.WaitCursor;
- MailMessage mail = new MailMessage();
- mail.From = new MailAddress(
- txtSend.Text, txtDisplayName.Text, Encoding.UTF8);
- mail.To.Add(txtReceive.Text);
- mail.Subject = txtTitle.Text;
- mail.SubjectEncoding = Encoding.Default;
- mail.Body = txtBody.Text;
- mail.BodyEncoding = Encoding.Default;
- mail.IsBodyHtml = false;
- mail.Priority = MailPriority.Normal;
- //添加附件
- Attachment attachment = null;
- if (lstFiles.Items.Count > 0)
- {
- for (int i = 0; i < lstFiles.Items.Count; i++)
- {
- string pathFileName = lstFiles.Items[i].ToString();
- string extName = Path.GetExtension(pathFileName).ToLower();
- //判断附件类型
- if (extName == ".rar" || extName == ".zip")
- {
- attachment = new Attachment(pathFileName, MediaTypeNames.Application.Zip);
- }
- else
- {
- attachment = new Attachment(pathFileName, MediaTypeNames.Application.Octet);
- }
- ContentDisposition cd = attachment.ContentDisposition;
- cd.CreationDate = File.GetCreationTime(pathFileName);
- cd.ModificationDate = File.GetLastWriteTime(pathFileName);
- cd.ReadDate = File.GetLastAccessTime(pathFileName);
- mail.Attachments.Add(attachment);
- }
- }
- SmtpClient client = new SmtpClient();
- client.Host = txtSmtpServer.Text;
- client.Port = 25;
- //是否使用安全套接字层加密连接
- client.EnableSsl = rbtnUseSSL.Checked;
- //不使用默认凭证,注意此句必须放在 client.Credentials 的上面
- client.UseDefaultCredentials = false;
- client.Credentials = new NetworkCredential(txtSend.Text, txtPassword.Text);
- //邮件通过网络直接发送到服务器
- client.DeliveryMethod = SmtpDeliveryMethod.Network;
- try
- {
- client.Send(mail);
- MessageBox.Show("发送成功");
- }
- catch (SmtpException ex)
- {
- MessageBox.Show("发送失败:" + ex.Message);
- }
- catch (Exception ex)
- {
- MessageBox.Show("发送失败:" + ex.Message);
- }
- finally
- {
- mail.Dispose();
- client = null;
- this.Cursor = Cursors.Default;
- }
- }
- }
- }
浙公网安备 33010602011771号