我正在开发一个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;
}
此代码适用于小文件。但我需要发送最大1-2 GB的大文件。 为此做什么。
答案 0 :(得分:5)
您无法使用电子邮件获取这些文件,这与您的代码无关。
我认为 ANY 提供商并不支持发送该大小的文件,更不用说接收它们了。即使G-Mail也有25 Mb的限制,这已经非常大了。
电子邮件不适合这样做。
因此,问题不在您的代码中,提供程序将限制附件的大小,并在您使用更大的文件呈现时拒绝它们。您将在您的FROM地址收到一封电子邮件,说明该文件太大而且您的电子邮件没有收到。
要以最简单的形式执行此操作,请查看FTP。
答案 1 :(得分:2)
我同意Gerald Versluis的意见,因为电子邮件不适合这个。即使您使用自己的可配置电子邮件服务器,也可能存在一些内部限制,无法发送此类大文件。
我会选择使用FTP,但如果您真的想继续发送电子邮件,我建议您先检查一下。