如何使用c#windows应用程序发送大文件

Ash*_*ore 0 c# email large-files winforms

我正在开发一个Windows应用程序,我需要通过电子邮件发送一些文件作为附件.

public string SendMail(string mFrom,
        string mPass,
        string mTo,
        string mSub,
        string mMsg,
        string mFile,
        bool isDel)
    {
        string sql = "";
        try
        {
            System.Net.Mail.MailAddress mailfrom = new System.Net.Mail.MailAddress(mFrom);
            System.Net.Mail.MailAddress mailto = new System.Net.Mail.MailAddress(mTo);
            System.Net.Mail.MailMessage newmsg = new System.Net.Mail.MailMessage(mailfrom, mailto);
            newmsg.IsBodyHtml = false;
            if (mFile.Length > 2
                && File.Exists(mFile))
            {
                System.Net.Mail.Attachment att = new System.Net.Mail.Attachment(mFile);
                newmsg.Attachments.Add(att);
            }
            newmsg.Subject = mSub;
            newmsg.Body = mMsg;
            System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("smtp.gmail.com", 587);
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new System.Net.NetworkCredential(mFrom, mPass);
            smtp.EnableSsl = true;
            smtp.Send(newmsg);
            newmsg.Dispose();
            GC.Collect();
            sql = "OK";
            if (isDel
                && File.Exists(mFile))
            {
                File.Delete(mFile);
            }
        }
        catch (Exception ex)
        {
            sql = ex.Message;
        }
        return sql;
    }
Run Code Online (Sandbox Code Playgroud)

此代码适用于小文件.但我需要发送高达1-2 GB的大文件.为此该怎么做.

Ger*_*uis 5

您无法使用电子邮件来获取这些文件,这与您的代码无关.

我不认为有任何提供商会支持发送那么大的文件,更不用说收到它们了.即使是G-Mail也有25 Mb的限制,这已经非常大了.

电子邮件不是正确的渠道.

因此,问题不在您的代码中,提供程序将限制附件的大小,并在您使用更大的文件呈现它们时拒绝它们.您将在您的FROM地址收到一封电子邮件,说明该文件太大而且您的电子邮件无法通过.

要以最简单的形式执行此操作,请查看FTP.