Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Отсылка файла на e-mail


Автор: #Sage 19.7.2005, 17:34
Каким образом можно отослать файл с компьютера на заданный э-мейл силами C#?

Автор: Дрон 19.7.2005, 17:49
Читаем MSDN по поводу:
System.Web.Mail
Если конкретней, то
System.Web.Mail.MailMessage
System.Web.Mail.MailAttachment
System.Web.Mail.SmtpMail

Там всё очевидно.

Автор: Unlimited 19.7.2005, 18:22

........
try
{
MailMessage eMail = new MailMessage();
SmtpMail.SmtpServer = smtpServer;
eMail.To = xxxxxl@xxx.xx;
eMail.From = xxxxxl@xxx.xx;
eMail.Subject = "Subject";
eMail.Body = "Hallo";
MailAttachment mailDatei = new MailAttachment("C:\\path\\file.txt");
mail.Attachments.Add(mailDatei );
SmtpMail.Send(eMail);
eMail=null;
}
catch(Exception e){

Console.WriteLine(e.StackTrace);

}
.........

Автор: Jlekc 20.7.2005, 16:15
в продолжения темы, а как скачать мыло с сервера?

Автор: #Sage 23.7.2005, 10:58
Спасибо за ответ. Всё получилось. А есть ли возможность назначить порт подключения или задать режим подключения к SMTP? Например, gmail использует TLS и 465 порт для SMTP (а не 25) и стандартными вариантами предлагаемыми System.Web.Mail и SmtpMail по-моему тут не обойтись. Есть ли выход?

Автор: Гость_Гость 26.7.2005, 21:01
Quicksoft Easymail попробуй

Автор: 70n70 16.8.2006, 15:36
Дабы не создавть новую тему..
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo f = new FileInfo("C:\\temp.txt");
            StreamWriter writer = f.CreateText();
            writer.WriteLine("Current OS: {0}", Environment.OSVersion);
            writer.Close();
            try
            {
                MailMessage eMail = new MailMessage();
                SmtpMail.SmtpServer = "smtp.inbox.ru";
                mail.To = "me@mycompany.com";
                mail.From = "you@yourcompany.com";
                Mail.Subject = "Subject";
                Mail.Body = "Hallo";
                MailAttachment mailDatei = new MailAttachment(@"C:\temp.txt");
                mail.Attachments.Add(mailDatei);
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "Oleg");
                mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123");
                SmtpMail.SmtpServer = "mail.mycompany.com";
                SmtpMail.Send(mail);

            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            } 
        }
    }
}

не могу врубиться почему не работые т во время компиляции выдаёт ошибки свзяаный с отправкой на мыло..

Автор: ivashkanet 16.8.2006, 15:53
70n70, а кто за тебя будет добавлять 
Код

using System.Net.Mail;


И где ты такой код взял????
Почему у тя то eMail, то mail, то Mail? Это все одна переменная?
Цитата(70n70 @  16.8.2006,  15:36 Найти цитируемый пост)
MailAttachment

этот класс, взятый из System.Web.Mail, считается устаревшим.
Рекомендуют пользваться классом просто Attachment из System.Net.Mail.
Цитата(70n70 @  16.8.2006,  15:36 Найти цитируемый пост)
SmtpMail

Анологично меняем на StmpClient из  System.Net.Mail

Попробуй так  smile

Добавлено @ 15:59 
Либо если ты все же хочешь пользоваться устаревшими классами, то подключай сборку 
Цитата(Дрон @  19.7.2005,  17:49 Найти цитируемый пост)
System.Web


Цитата(Дрон @  19.7.2005,  17:49 Найти цитируемый пост)
System.Web.Mail
Если конкретней, тоSystem.Web.Mail.MailMessage
System.Web.Mail.MailAttachment
System.Web.Mail.SmtpMail


делай using на System.Web.Mail и пользуйся кодом Unlimited  smile 

Автор: 70n70 16.8.2006, 17:36
Код

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net.Mail;
using System.Net;

namespace ConsoleApplication4
{
    class Program
    {
        static void Main(string[] args)
        {
            FileInfo f = new FileInfo("C:\\temp.txt");
            StreamWriter writer = f.CreateText();
            writer.WriteLine("Current OS: {0}", Environment.OSVersion);
            writer.Close();
            try
            {
                MailMessage message = new MailMessage(
                    "you@yourcompany.com",
                    "me@mycompany.com",
                    "Subject",
                    "Hello");
                Attachment data = new Attachment(@"C:\temp.txt");
                message.Attachments.Add(data);
                SmtpClient client = new SmtpClient("smtp.inbox.ru");
                client.Credentials = CredentialCache.DefaultNetworkCredentials;
                client.Send(message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
            }
        }
    }
}

вот. откомпилил. спасибо за советы. =) ещё один вопрос.. как сделать аутентификацию через System.Net.Mail.MailMessage?

Автор: ivashkanet 16.8.2006, 17:45
Я не очень в этом шарю, но ИМХО ты ее уже использовал smile 
Цитата(70n70 @  16.8.2006,  17:36 Найти цитируемый пост)
client.Credentials = CredentialCache.DefaultNetworkCredentials;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)