• 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
    {
    /// <summary>
    /// 作者:Andrew
    /// Blog: http://blog.csdn.net/Andrew_wx
    /// </summary>
    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 = "Andrew(王旭)";
    txtPassword.Text = "";//密码
    txtReceive.Text = "heuandmei@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;
    }
    }
    }
    }

    以上是完整代码。

    项目包下载地址:https://files.cnblogs.com/andrew-blog/SendMailExample.rar

  • 相关阅读:
    Kotlin技术入门以及和Java对比.md
    最新版Charles破解方法(Mac+Windows).md
    阿里移动云专场专题.md
    win10下 github+hexo搭建个人博客.md
    Java内存回收机制.md
    基于补偿的数据库分布式事务实践
    Log4J,在踩坑中升级版本
    关于服务注册与发现
    JVM内存模型-重排序&内存屏障
    GC初识
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2277679.html
Copyright © 2020-2023  润新知