Я использую этот класс для отправки почты через учетную запись Gmail:
public class GmailAccount
{
public string Username;
public string Password;
public string DisplayName;
public string Address
{
get
{
return Username + "@gmail.com";
}
}
private SmtpClient client;
public GmailAccount(string username, string password, string displayName = null)
{
Username = username;
Password = password;
DisplayName = displayName;
client = new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(Address, password)
};
}
public void SendMessage(string targetAddress, string subject, string body, params string[] files)
{
MailMessage message = new MailMessage(new MailAddress(Address, DisplayName), new MailAddress(targetAddress))
{
Subject = subject,
Body = body
};
foreach (string file in files)
{
Attachment attachment = new Attachment(file);
message.Attachments.Add(attachment);
}
client.Send(message);
}
}
Вот пример того, как я его использую:
GmailAccount acc = new GmailAccount("zippoxer", "******", "Moshe");
acc.SendMessage("zippoxer@gmail.com", "Hello Self!", "like in the title...", "C:\\822d14ah857.r");
Последний параметр в методе SendMessage - это местоположение вложения, которое я хочу добавить.
Я пытался отправить письмо с вложением 400 КБ, отлично работал (даже 900 КБ работает). Но затем я попытался загрузить вложение размером 4 МБ, но ничего не вышло. Пробовал 22MB -> тоже не сработало.
В Gmail должно быть ограничение 25 МБ на сообщение. Тема и тело моего сообщения почти пусты, поэтому не рассматривайте их как часть размера сообщения. Почему у меня такой низкий лимит?