Сведения о вопросе

Solllo

14:44, 20th August, 2020

Теги

.net   email   smtp    

Как отправить email из программы _without_, используя уже существующую учетную запись?

Просмотров: 430   Ответов: 6

Я бы хотел, чтобы моя программа была в состоянии email мне отчеты об ошибках. Как я могу сделать это без жесткого кодирования a username/password/SMTP server/etc. в код? (Это позволит пользователям декомпилировать программу и взять на себя эту учетную запись email.)

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

Я использую .NET v3.5 (C# в частности), но я бы предположил, что идеи достаточно схожи в большинстве языков. Пока вы понимаете, что я делаю это для автономного приложения, и не предоставляете мне код PHP или что-то еще, мы должны быть в порядке.



  Сведения об ответе

nYU

07:43, 4th August, 2020

Пока ваша учетная запись находится на gmail.com, установите gmail-smtp-in.l.google.com в качестве исходящего SMTP-сервера в вашей программе. Вам не нужно указывать пароль для отправки email в gmail-учетные записи при использовании этого сервера.


  Сведения об ответе

crush

06:59, 13th August, 2020

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


  Сведения об ответе

fo_I_K

19:46, 28th August, 2020

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

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


  Сведения об ответе

darknet

21:13, 3rd August, 2020

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

К сожалению, не всегда можно легко получить эту информацию OR есть небольшое исключение, которое не позволит вам войти в систему анонимно, как при использовании Exchange в компании...

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


  Сведения об ответе

прога

08:18, 21st August, 2020

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

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


  Сведения об ответе

VERSUION

11:37, 19th August, 2020

MailMessage msg = new MailMessage("someone@foo.com", "someoneelse@bar.com");
msg.Subject = "Check it out!";
msg.Body = "Visit stackoverflow.com!";
SmtpClient client = new SmtpClient("some.smtp.server", 25);
client.Send(msg);


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться