如何从C#发送带有附件的电子邮件?

如何从C#发送带有附件的电子邮件?,c#,.net,C#,.net,我正在尝试写一个代码,什么可以保存图片盒的内容(工作)和通过电子邮件发送它(不工作) 你认为可能有什么问题?SmtpClient=newsmtpclient(“smtp.gmail.com”);是否还有其他功能 此外,在上传图像时,程序不应该冻结,如果必要的话,可以同时上传一些图像 System.Drawing.Image img = pictureBox1.Image; string name = "" + DateTime.Now.ToStri

我正在尝试写一个代码,什么可以保存图片盒的内容(工作)和通过电子邮件发送它(不工作)

你认为可能有什么问题?SmtpClient=newsmtpclient(“smtp.gmail.com”);是否还有其他功能

此外,在上传图像时,程序不应该冻结,如果必要的话,可以同时上传一些图像

            System.Drawing.Image img = pictureBox1.Image;
            string name = "" + DateTime.Now.ToString("dd_MM_yyyy_HH_mm_ss") + ".jpg";
            img.Save(name, System.Drawing.Imaging.ImageFormat.Jpeg);

            if (chb_notif.Checked == true) ////////////// SEND EMAIL!
            {

                MailMessage message = new MailMessage(
                   "do-not-reply@123.com",
                   tb_email.Text ,
                   "VIDEO FENCE",
                   "Your perimeter has been breeched! System name: " + Environment.MachineName + "." );

                Attachment data = new Attachment(name);

                ContentDisposition disposition = data.ContentDisposition;
                disposition.CreationDate = System.IO.File.GetCreationTime(name);
                disposition.ModificationDate = System.IO.File.GetLastWriteTime(name);
                disposition.ReadDate = System.IO.File.GetLastAccessTime(name);

                message.Attachments.Add(data);

                //Send the message.
                SmtpClient client = new SmtpClient("smtp.gmail.com");

                client.Credentials = CredentialCache.DefaultNetworkCredentials;

                client.Send(message);
            }

谢谢

如果您不希望应用程序挂起,而挂起可能需要一些时间(如果图像太大,或者服务器没有响应,则需要将其放入单独的线程中。(已有许多示例)

正如我们中的一些人所指出的,你也需要发送电子邮件,你上面的代码不能做到这一点。当然要注意,如果gmail认为你在试图通过他们进行转载,邮件可能不会发送。

用于:

“SMTP服务器需要安全连接,或者客户端未经过身份验证。服务器响应为:5.5.1需要身份验证”

试用:

 var client = new SmtpClient("smtp.gmail.com", 587)
        {
            Credentials = new NetworkCredential("username", "password"),
            EnableSsl =true
        };

        client.Send(message);

我在代码中看不到它发送实际邮件的任何地方。类似或重复:哪里是
发送电子邮件代码行
?这里是:client.send(message);很好。现在请描述“不起作用”,因为我真的开始讨厌这样的问题。只是添加了client.send(message),但仍然没有做任何事情。如果gmail不喜欢它的SMTP被这样使用,也许有一些SMTP不会介意?或者我应该通过我的gmail帐户做这件事吗?当你说什么都不做,你是什么意思?我的意思是它不发送电子邮件。:)或者你的意思是收件人没有收到?是的。现在它还说“SMTP服务器需要安全连接,或者客户端没有经过身份验证。服务器响应是:需要5.5.1身份验证。”