Edycja: jestem w stanie wysyłać pocztę bez przywiązaniaWyślij mail z załącznikiem
otrzymuję ten błąd podczas próby wysyłania poczty:
System.Net.Mail.SmtpException: The operation has timed out.
Poniżej znajduje mój kod:
public static void SendMailMessage(string to, string subject, string body, List<string> attachment)
{
MailMessage mMailMessage = new MailMessage();
// string body; --> Compile time error, body is already defined as an argument
mMailMessage.From = new MailAddress("[email protected]");
mMailMessage.To.Add(new MailAddress(to));
mMailMessage.Subject = subject;
mMailMessage.Body = body;
foreach (string s in attachment)
{
var att = new Attachment(s);
mMailMessage.Attachments.Add(att);
}
// Set the format of the mail message body as HTML
mMailMessage.IsBodyHtml = true;
// Set the priority of the mail message to normal
mMailMessage.Priority = MailPriority.High;
using (SmtpClient mSmtpClient = new SmtpClient())
{
mSmtpClient.Send(mMailMessage);
}
}
Web Config
<system.net>
<mailSettings>
<smtp from="mailid">
<network host="smtp.gmail.com" port="587" enableSsl="true" userName="username" password="pass" />
</smtp>
</mailSettings>
Uwaga: Załączniki nie przekraczającej limit (poniżej niż 25 MB)
Co mogę zrobić, aby rozwiązać ten problem, albo co mi brakuje?
timeout prawdopodobnie wskazuje na brak połączenia z serwerem pocztowym. –
Jest mało prawdopodobne, że Gmail smtp jest w trybie offline, więc spróbuj ustawić enableSsl na false i przetestuj. Wydaje mi się, że używają TLS zamiast SSL do wysyłania – TimothyP
Ok najwyraźniej powinieneś ustawić ssl na true, czy próbowałeś otworzyć surową sesję do SMTP z komputera, na którym uruchomiłeś oprogramowanie? – TimothyP