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的大文件.为此该怎么做.
您无法使用电子邮件来获取这些文件,这与您的代码无关.
我不认为有任何提供商会支持发送那么大的文件,更不用说收到它们了.即使是G-Mail也有25 Mb的限制,这已经非常大了.
电子邮件不是正确的渠道.
因此,问题不在您的代码中,提供程序将限制附件的大小,并在您使用更大的文件呈现它们时拒绝它们.您将在您的FROM地址收到一封电子邮件,说明该文件太大而且您的电子邮件无法通过.
要以最简单的形式执行此操作,请查看FTP.