C#发送邮件(winform,包括附件)

注意:附件添加的文件不要添加太大,不然会弄挂掉程序,因为发送大文件是一个很耗时的过程,需要额外的线程进行处理,这里为了简单起见就不做过多的处理

转自:https://bbs.csdn.net/topics/392481821

在winform中添加一个按钮,Name属性为btnSend,Text属性为 发送

双击发送按钮,打开发送按钮的事件函数并编辑代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 发送邮件winform
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void btnSend_Click(object sender, EventArgs e)
        {
            try
            {
                string title = "提交的内容";
                string contact = "附件";
                string content = "附件是我要提交的内容";
                string upfile = "";
                //实例化一个发送邮件类。
                MailMessage mailMessage = new MailMessage();

                //发件人邮箱地址,方法重载不同,可以根据需求自行选择。
                mailMessage.From = new MailAddress("1323266208@qq.com");

                //收件人邮箱地址。
                mailMessage.To.Add(new MailAddress("2847225301@qq.com"));

                //邮件标题。
                mailMessage.Subject = title;

                //邮件内容。
                string MailBody = "<p style=\"font-size: 10pt\">联系:" + contact + "</p>";
                MailBody += "<p style=\"font-size: 10pt\">内容:" + content + "</p>";

                //内容编码 
                mailMessage.BodyEncoding = Encoding.Default;

                //发送优先级 
                mailMessage.Priority = MailPriority.High;

                //邮件内容 
                mailMessage.Body = MailBody;

                MessageBox.Show("请选择附件");
                //添加附件,打开添加附件的对话框
                OpenFileDialog dialog = new OpenFileDialog();
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    upfile = dialog.FileName;
                }
                else {
                    return;
                }
                mailMessage.Attachments.Add(new Attachment(upfile));
                MessageBox.Show("附件添加完成,等待发送中...");
                //是否HTML形式发送 
                mailMessage.IsBodyHtml = true;  //============这里很重要,以前我也是这里漏了,发出去的是html代码

                //实例化一个SmtpClient类。
                SmtpClient client = new SmtpClient();

                //发件服务器
                client.Host = "smtp.qq.com";

                //使用安全加密连接。
                client.EnableSsl = true;

                //不和请求一块发送。
                client.UseDefaultCredentials = false;

                //验证发件人身份(发件人的邮箱,发送邮箱里的生成授权码);
                client.Credentials = new NetworkCredential("1323266208@qq.com", "邮箱里的生成授权码,需要到发送的qq邮箱里面设置,获取授权码");

                //发送
                client.Send(mailMessage);
                MessageBox.Show("发送成功");
                }
                catch (Exception)
                {
                    MessageBox.Show("发送失败");
                
                }
        }
    }
}

不过经过测试发现,邮件没添加附件之前,每一封邮件都会当成垃圾邮件来处理,不过添加附件后,再修改一下发送的内容后就不会被当成垃圾邮件处理了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值