Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+6 невидимых)

 eXeL@B —› Программирование —› отправка на smtp
Посл.ответ Сообщение

Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 августа 2008 21:07
· Личное сообщение · #1

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Web.Mail;

namespace mailAgent
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// Application.EnableVisualStyles();
// Application.SetCompatibleTextRenderingDefault(false);
// Application.Run(new Form1());

MailMessage email = new MailMessage();
email.From = "мойящег@сервер.ru";
email.To = "другоймойящег@другойсервер.ru";
email.Subject = "Botvushka";
email.BodyFormat = MailFormat.Text;
email.Body = "LOOOOL";

email.Attachments.Add(new MailAttachment(@"C:\testfile.txt",MailEncoding.Base64));
SmtpMail.SmtpServer = "smtp.другойсервер.ru";
SmtpMail.Send(email);

}
}
}


почему вот этот наипростейший код при вписывании туда любых известных мне серваков и адресов электронной почты выводит различные ошибки (например 550), а при вписывании в адрес сервака smtp.mail.ru просит авторизироваться. Кароче не работает ни с какими серваками. Кто знает в чем дело?? Кстати какие поля в System.Web.Mail отвечают за авторизацию (логин и пароль) я тоже не знаю подскажите плиз!



Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 19 августа 2008 22:40 · Поправил: userdom
· Личное сообщение · #2

andruja,
занимался как-то этой проблемой (баян, конечно).
В интернете много исходников, но ни один не позволяет отсылку
писем по защищённой связи, а меня интересовало именно это
(в частности отсылка "с" и "на" Google Mail). В конце-концов получилось.
Если интересует, в архиве indy9.0.18_source, модуль (очень сырой, но рабочий)
по отсылке писем и исходники (делал в Делфи 7)
--> My_Post (2,6 Мб)<-- http://rapidshare.com/files/138564475/My_Post.zip



Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 19 августа 2008 23:25
· Личное сообщение · #3

нее, мне надо на с#. И все таки я с самого начала не въехал когда читал про smtp что за тупость что указав чужой мейл в поле "from" можно без всякой авторизации отправлять письма с чужого мейла. Потом прочитал что типо появилось расширение smtp где можно авторизироваться, но тока в классе SmtpMail есть тока 2 нормальных члена это метод Send и поле SmtpServer а полей для пароля и логина нету, вот я и хз как их посылать.

а защищенная связь это ты имеешь ввиду та в которой нужно авторизироваться?? у меня кроме авторизации еще проблем дофига, так как некоторые другие серверы вообще не реагируют на запросы или выдают ошибки, а мейлклменты то должны работать с любыми серваками.

и еще:
userdom пишет:
В интернете много исходников, но ни один не позволяет отсылку
писем по защищённой связи,

к чему тогда эти исходники, если они не работают??




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 20 августа 2008 00:39
· Личное сообщение · #4

=) у мну была такая тема , решение не было найдено оптимальное , топик был тут же на форуме, ибо таскать либы в 100 кб для ссл чтобы нормально отправить письмо , это издевательство. Что же касается ошибок то может они и в коде у тебя есть , но факт что почтовики все сумма сошли. Блокираторы спама делают свою черную работу. Выход пока соединение через ссл =)

Так что не знаю даже , можешь поискать мой топ и если тебя устраивает использовать ссл для авторизации и слать что хочешь , кстати примеры на си шарп я видел на кодпрожект сайте.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 августа 2008 01:44
· Личное сообщение · #5

mak пишет:
же касается ошибок то может они и в коде у тебя есть , но факт что почтовики все сумма сошли

а ето собственно и есть весь мой код (слит из одной книжки). собстно написание этого кода и программированием то не назовешь))) но книжка то по программированию и работать код должен, да и по сути все понятно что в этом коде и ошибок нет (все обязательные поля заполнены).
и если сможешь то скинь плиз каких-нить кодов с кодпрожекта или еще откуданить



Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 августа 2008 01:47
· Личное сообщение · #6

вот этот код написан с помошью встроенного в НЕТ.фреймворк класса систем.веб.майл, тоесть тут даже думать не нада просто заполняй поля как в обычным мейл-агенте-программе, но все равно ниче не пашет, но нормальные профессиональные мейл-клиенты же пашут, а их писали чтоли не с помощью этого глюкавого класса систем.веб.майл ??




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 20 августа 2008 06:35
· Личное сообщение · #7

На сколько я понимаю с бесплатными почтовыми серверами такие фокусы не пройдут, там действительно везде стоит smtp-авторизация. Чтобы отправить письмо с адреса billy@microsoft.com придется гдето у себя подымать почтовый сервант без авторизации.
А вообще можно попробовать поискать исходники/подебажить пинча который через smtp логи шлет....ведь там то както реализована отправка и даже на общедоступные сервера....и никакого ссл там походу нет...

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 августа 2008 07:06 · Поправил: Miklen
· Личное сообщение · #8

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

Дело в том, что почтовые сервера между собой обмениваются немного по-другому. А именно берут из зоны MX (mail exchange) имя сервера.

чтобы узнать сервис для отправки например на mail.ru сделай в консоли винды следующее:


запустить nslookup

> set type=mx
> mail.ru
Server: XXXXXXXXXXXX <=== адрес твоего DNS
Address: XXX.XXX.XXX.XXX

DNS request timed out.
timeout was 2 seconds.
Non-authoritative answer:
mail.ru MX preference = 10, mail exchanger = mxs.mail.ru

mail.ru nameserver = ns5.mail.ru
mail.ru nameserver = ns.mail.ru
mail.ru nameserver = ns1.mail.ru
mail.ru nameserver = ns2.mail.ru
mail.ru nameserver = ns3.mail.ru
mail.ru nameserver = ns4.mail.ru
mxs.mail.ru internet address = 194.67.23.20
>

т.е. будет mxs.mail.ru

собственно вот. и так для каждого адреса.
т.е. для @yandex.ru будет другое!!

но и при этом удаленный сервак может забанить тебя, сказав, например, что у тебя динамический IP



Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 августа 2008 07:52
· Личное сообщение · #9

вобще вот тут разжовано как все работает www.opennet.ru/docs/RUS/mail/

не знаю, как оно там внутри c#, но вобще все очень просто работает, вот вам для примера отправим что-нить:

telnet mxs.mail.ru 25
Trying 194.67.23.20...
Connected to mxs.mail.ru.
Escape character is '^]'.
220 Mail.Ru ESMTP
HELO microsoft.com
250 mx12.mail.ru ready to serve
MAIL FROM: support@microsoft.com
250 OK
RCPT TO: vasya@mail.ru
250 OK
DATA
354 Go ahead
From: Support <support@microsoft.com>
To: vasya

Hello Vasya

Please do not use cracked software!

.
250 OK id=1KVfRN-000Jrx-00
quit
221 mx12.mail.ru closing connection
Connection closed by foreign host.


Естественно адрес vasya@mail.ru должен существовать на этом сервере!

Вобщем для andruja: ищите как в c# сделать запрос к DNS-серверу зоны MX.
вот вроде это подойдет www.codeproject.com/KB/IP/dnslookupdotnet.aspx

Второй вариант для вас это завести на том же mail.ru адрес и отправлять через smtp.mail.ru, предворительно вводя имя+пароль. Но тогда вы сможете отправлять почту только с этого заведеного адреса. вот.

Ну или как сказал SecurAdmin, свой сервак поставить =)




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 20 августа 2008 09:54
· Личное сообщение · #10

Miklen пишет:
telnet mxs.mail.ru 25
Trying 194.67.23.20...
Connected to mxs.mail.ru.
Escape character is '^]'.
220 Mail.Ru ESMTP
HELO microsoft.com
250 mx12.mail.ru ready to serve
MAIL FROM: support@microsoft.com

Вот как раз на этом то этапе и скажут что использован динамический IP и отправляющий такую фуфайку будет сразу послан....и я полагаю, что такие манипуляции не пройдут ни на одном общедоступном мэил сервере....хотя наверняка утверждать не буду...по-крайней мере mail.ru меня честно послал

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 20 августа 2008 12:40 · Поправил: Miklen
· Личное сообщение · #11

SecurAdmin пишет:
Вот как раз на этом то этапе и скажут что использован динамический IP и отправляющий такую фуфайку будет сразу послан....


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




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 20 августа 2008 13:26
· Личное сообщение · #12

Miklen Прошло ты уверен ??? У меня в топе тоже народ говорил у тебя код типо рабочий , все впорядке смотри свои адреса на бан. А оказалось что было возвращено удачная отправка , а письмо никуда не ушло. Мало того !!! Ты даже еще заголовки послать не успеешь как будешь послан , обычно на стадии DATA команды , после нее ты уже в бане. Ты проверял письмо ? оно ушло на тот адрес и там лежит и можно читать?

SecurAdmin не только намайле , на рамблере , яндексе , и других. Я специально тестил. Диапазон адресов имов был широкий , Россия , америка , и страны европы , постояный Бан результат.

Чтоже касается Того же БАТА , то мой бат не работает , хотя ему 1 год уже , как не обновлял. Если это изменения в правилах почтовиков. СКажем измененая аутентификация или еще что то может новые профессиональные почтовики и работают =)

Инет для народа !!! Локалка для государства !

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 20 августа 2008 13:41 · Поправил: SecurAdmin
· Личное сообщение · #13

Miklen
Дык я и пробовал...результат нулевой, мну посылают. Думаю, на этих серваках всего скорей чтото с аутентификацией намучено...
Те же самые манипуляции прекрасно проходят с моим почтовиком, поэтому для меня самое простое решение такой проблемы - установка в локальной сети левого почтового релея

PS: А вот пинч, кстати, для отправки сначала авторизуется на сервере...и это у него прекрасно получается. Так что если нет цели отсылки почты с левого ящика, а целью является собственно отправка почты с серверов использующих такие механизмы аутентификации, то думаю дебаг пинча - самое оптимальное занятие.

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 августа 2008 14:29
· Личное сообщение · #14

а че такое пинч (это хрень добавляется в свой код и работает там как авторизация??) и где взять этот код пинча??



Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 20 августа 2008 19:45
· Личное сообщение · #15

mak,
таскать либы в 100 кб для ссл чтобы нормально отправить письмо , это издевательство
При нынешних МЕГА-ГИГА-байтах и памяти и места, имхо, не столь уж и критично

andruja,
а где у тебя идёт настройка порта соединения для smtp,
он ведь для разных почтовых серверов не всегда одинаков? М.б. здесь проблема?



Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 20 августа 2008 20:10
· Личное сообщение · #16

userdom пишет:
а где у тебя идёт настройка порта соединения для smtp,
он ведь для разных почтовых серверов не всегда одинаков? М.б. здесь проблема?


в system.web.mail как бы нет поля для вписывания порта, помоему он там внутри класса зашит и его нельзя поменять (кстати вроде они разные тока для pop3 а не для smtp)



Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 20 августа 2008 22:17
· Личное сообщение · #17

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



Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 20 августа 2008 22:55
· Личное сообщение · #18

andruja,
кстати вроде они разные тока для pop3 а не для smtp
Извини, туплю, для POP3 - порт 110, для SMTP - порт 25, только у гугла - SMTP - порт 465 или 587




Ранг: 95.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 21 августа 2008 15:34
· Личное сообщение · #19

Halt пишет:
пинч, по крайней мере пинч90 все какие мне попадались файлы, работал через авторизацию. авторизировался на заранее зареганное мыло и осуществлял пересылку куда надо. так что он тут не помошник.


Halt, так в том то весь как раз и вопрос...и вопрос этот нужно наверное автору адресовать, что же в итоге он хочет? отправку мыла с фейкового адреса или же отправку мыла как таковую??? Если первый вариант, то я не могу найти для себя конкретных решений иначе как ставить свой мыльный сервак или искать гдето open relay. Если же второй, то копать исходники/код пинча или же искать другие пути...благо в простой отправке мыла ничего "криминального" нет

-----
бессмысленные манипуляции не становятся более разумными если их повторять




Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 21 августа 2008 15:42
· Личное сообщение · #20

Это бред ставить мыльный сервак, потому что поидее все что делает сервак можно проделать вручную командой telnet. Не знаю как у вас, но У МЕНЯ ЭТО РАБОТАЕТ.
если не верите - запустить сниффер и посмотрите чего там такого оригинального ваш сервак шлёт, что от него вдруг mail.ru письма принимает, а когда ручками тоже самое напишешь - нет.




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 21 августа 2008 16:22
· Личное сообщение · #21

Вот смтп от пинча , мне он не помог , также банит ип и ошибка. Искал в пинче 2 майл сендер не нашел ...странно

b172_21.08.2008_CRACKLAB.rU.tgz - SMTP.asm

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 69.8 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 21 августа 2008 19:40 · Поправил: userdom
· Личное сообщение · #22

Вот ещё один почтовик Валериана Кадышева - StudMailer, но меня не устроило,
что не может работать с гуглемейл (т.е. послать письмо на гуглемейл можно,
а вот с гуглемейла отправить письмо не получится ), с остальными почтовыми серверами
работает без проблем. Если есть у кого интерес, в архиве программа и исходники для Делфи.

b033_21.08.2008_CRACKLAB.rU.tgz - StudMailer.zip



Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 01 сентября 2008 14:16
· Личное сообщение · #23

borov ты знаешь как перекодировать русский шрифт писем чтобы когда их получаешь через ПОП3 они нормально отображались в моем почтклиенте. а то если шрифт русский, то все отображается в виде "?????????". В какую функцию прередать текст чтобы переконвертировать в нормальный русский?? И еще когда посылаешь команду RETR то сервак сразу отсылает текст письма вместе со всеми заголовками, значит нет никаких команд чтобы он посылал отдельно текст и заголовки?? Типо единственный способ их разбить это разбивать самому??




Ранг: 104.9 (ветеран), 47thx
Активность: 0.040.02
Статус: Участник

Создано: 01 сентября 2008 17:08
· Личное сообщение · #24

andruja пишет:
В какую функцию прередать текст чтобы переконвертировать в нормальный русский??

base64

открой в своем почтовом клиенте любое письмо и посмотри как оно устроено. в TheBat это кнопка F9.
при отправке вручную делаешь примерно такое же письмо с такой же структурой



Ранг: 43.1 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 01 сентября 2008 17:34
· Личное сообщение · #25

ManHunter пишет:
открой в своем почтовом клиенте любое письмо и посмотри как оно устроено. в TheBat это кнопка F9.
при отправке вручную делаешь примерно такое же письмо с такой же структурой

нее, мне надо не при отправке, а при чтении, при отправке все нормально, а при чтении писем с русской кодировкой текст отображается в виде "???????".

то есть значит мне нужна функция обратная base64 ?? как она называется?



Ранг: 4.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 сентября 2008 19:32 · Поправил: Miklen
· Личное сообщение · #26

andruja, всё не так просто при приёме сообщений. это может быть MIME/Bas64/Quoted-printable.... а если там HTML (это MS Outlook любит).... ?
вот например на питоне примерно такая чушь получается (я писал первый раз на питоне, так что не совсем красиво код выглядит). Это при том что здесь используются готовые библиотеки.


Code:
  1. # Process the message
  2. def proc(msg):
  3.     print 'From : '+  my_get_header(msg['From']).encode(outEnc)
  4.     print 'To : '+  my_get_header(msg['To']).encode(outEnc)
  5.     print 'Subject: '+ my_get_header(msg['Subject']).encode(outEnc)
  6.     print
  7.     
  8.     if msg.is_multipart():
  9.          for part in msg.walk():
  10.              if part.get_content_type() == "text/plain":
  11.                  if part.get_content_charset():
  12.                      print obrez(part.get_payload(None,True).decode(part.get_content_charset()).e ncode(outEnc))
  13.                  else:
  14.                      print obrez(part.get_payload(None,True))
  15.     else:
  16.          if msg.get_content_type() == "text/plain":
  17.              if msg.get_content_charset():
  18.                  print obrez( (msg.get_payload(None,True)).decode(msg.get_content_charset()) ).encode(outEnc)
  19.              else:
  20.                  print obrez(  msg.get_payload(None,True)  )
  21.          else:
  22.              if msg.get_content_type() == "text/html":
  23.                  if msg.get_content_charset():
  24.                      print (msg.get_payload(None,True)).decode(msg.get_content_charset()).encode( outEnc)
  25.                  else:
  26.                      print msg.get_payload(None,True)



P.S. да, изначально хотел на c# писать, потом выполнять в mono (Linux), но... там таких клёвых библиотек для мыльника не нашёл =)


 eXeL@B —› Программирование —› отправка на smtp
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати