2017-08-16 2 views
0

J'ai une liste de données d'une base de données et j'ai l'email dans la base de données, je dois envoyer un email à ces ID où si sa date de rétention est demain signifie que je dois envoyer un email d'intimidation envoyer des courriels, et je vais utiliser le service pour envoyer tous les jours, mais ma part e-mail n'est pas working..below mon code ..comment envoyer un email en utilisant smtp dans C#?

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net; 
using System.Net.Mail; 
using System.Text; 
using System.Threading.Tasks; 


namespace SendingEmail 
{ 
    public class SendingMail 
    { 
     public static void SendMail(string recipient, string subject, string 
     body, string attachmentFilename) 
     { 
      //method to send email 
      MailMessage mail = new MailMessage(); 
      try 
      { 
       SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com", 587); 
       SmtpServer.EnableSsl = true; 
       SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "my password"); 
       string From = "my [email protected]"; 
       string To = "email.com"; 
       mail.Subject = "Test Mail - 1"; 
       mail.Body = "mail with attachment"; 
       MailMessage msg = new MailMessage(From, To); 
       System.Net.Mail.Attachment attachment; 
       attachment = new System.Net.Mail.Attachment 
       (@"C:\Users\rahul.chakrabarty\Desktop\logg.txt"); 
       mail.Attachments.Add(attachment); 
       SmtpServer.Send(mail); 
      } 
      //To cathch Exception 
      catch (Exception ex) 
      { 
       Console.WriteLine("unable to send" + ex); 
      } 
     } 
    } 
} 

mon erreur est « incapable de sendsystem.InvalidOperationException: A partir de l'adresse doit être spécifié » .. Ceci est mon erreur

+0

J'aurais supprimé ces commentaires affectant le formatage tbh; ils sont juste bruit –

+0

AFAIK une adresse e-mail ne peut pas avoir des espaces. changer 'string From =" mon [email protected] ";' '' chaîne From = "[email protected]"; ' –

+0

Je supposais que c'était juste lui obfuscating son adresse e-mail .. –

Répondre

1

Vous avez dit

String from = "my [email protected] 

Mais nulle part avez-vous réellement attribué cette chaîne à la propriété mail.From - vous êtes allé et a fait une nouvelle MailMessage utilisant que de l'adresse, et l'a appelé msg:

MailMessage msg = new MailMessage(From, To) 

mais vous n'êtes pas d'envoyer le courrier msg , vous envoyez le mail mail:

SmtpServer.Send(mail); 

le même problème existe avec le Pour faire face à la variable mail

au fond, la morue Tout est en désordre: vous créez deux objets MailMessage, définissez la moitié des choses nécessaires sur l'un, l'autre moitié des choses nécessaires sur l'autre, puis essayez d'en envoyer un avec des détails incomplets. C'est un peu comme si vous aviez copié et collé deux tutoriels différents ensemble mais que vous n'en aviez pas assez pour obtenir un MailMessage complet prêt à être envoyé

J'aurais pu tout corriger pour vous et j'ai posté un code de travail, mais je n'ai pas pour deux raisons: 1) il est très facile de faire ces petits changements vous-même, et 2) je veux que vous le fassiez comme un exercice d'apprentissage plutôt que de vous donner la réponse :)

Assurez-vous de ne pas mettre un espace dans l'adresse e-mail soit

+0

ouais désolé j'ai fait des changements si je ne vois pas mais si je corrigé maintenant ,, je dint obtenir une exception..mais je ne sais pas aussi 0mail –

+0

Vérifiez la courrier indésirable? Les mails de test avec des pièces jointes ressemblent tellement à ceux-ci "voici votre facture UPS

+0

obtenir l'erreur en tant que "incapable de sendystem.net.mail.smtpException" –