2016-01-07 4 views
0

(Если бы перепечатывать это потому, что я сделал что-то очень тупой в оригинале ...)C# Как отправить электронную почту с приложением с удаленного сайта

ПРИМЕЧАНИЕ: Я очень новичок в программировании.

Я могу отправить электронное приложение с моего компьютера, но как отправить вложение через interwebs, например: http://blah.com/image.jpg в отличие от @ "C: \ Users \ me \ pictures \ picture.jpg"?

Заранее спасибо.

Вот что у меня есть:

class Program 
    { 
     public const string GMAIL_SERVER = "smtp.gmail.com"; 
     public const int PORT = 587; 

     static void Main(string[] args) 
     { 
      Console.WriteLine("Mail To:"); 
      MailAddress to = new MailAddress(Console.ReadLine()); 

      Console.WriteLine("Mail From:"); 
      MailAddress from = new MailAddress(Console.ReadLine()); 

      MailMessage mail = new MailMessage(from, to); 

      Console.WriteLine("Subject:"); 
      mail.Subject = Console.ReadLine(); 

      mail.Attachments.Add(new Attachment(@"C:\Users\me\pictures\picture.jpg")); 
      //Not sure how to send from a remote website... 

      Console.WriteLine("Your Message:"); 
      mail.Body = Console.ReadLine(); 

      SmtpClient smtp = new SmtpClient(GMAIL_SERVER, PORT); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 

      smtp.Credentials = new NetworkCredential(
       "myemail", "password"); 
      smtp.EnableSsl = true; 
      Console.WriteLine("Sending email... Please wait..."); 

      smtp.Send(mail); 
      Console.WriteLine("Finshed!\n"); 

     } 
    } 

ответ

0

Вам необходимо загрузить файл и добавить его в качестве приложения, как вы уже сделали.

Somthing как

string localFilename = @"c:\localpath\tofile.jpg"; 
using(WebClient client = new WebClient()) 
{ 
    client.DownloadFile("http://www.example.com/image.jpg", localFilename); 
} 

загрузит файл.

+0

Спасибо! Вы спасли меня много времени и безумия. Работал как шарм! – Jujucat

0

Загрузите изображение сначала, а затем просто используйте локальный файл или используйте Stream и напрямую используйте его в конструкторе вложения. См. https://msdn.microsoft.com/library/system.net.mail.attachment(v=vs.110).aspx. Для первого подхода просто используйте WebClient с .DownloadFile. Для второго, попробуйте:

WebClient client = new WebClient(); 
client.OpenReadCompleted += (s, e) => 
    { 
     // e.Result is your stream containing the image. 
    }; 
client.OpenReadAsync(new Uri(imageUrl)); 
+0

Спасибо за ваш ответ! – Jujucat

Смежные вопросы