MailMessage принимает только отправителя с @domain - PullRequest
0 голосов
/ 11 мая 2018

Я написал код в .NET для отправки писем в моем приложении:

Oxygenne + ASP.Net:

    mensagem:=MailMessage.Create(configemail[1],toUsers);
    mensagem.Subject:=title;
    mensagem.Body:=body;
    mensagem.IsBodyHtml:=IsBodyHtml;

Это прекрасно работает, когда configemail [1] выглядит как «myemail@gmail.com». Тем не менее, у меня есть необходимость отправлять электронные письма без использования домена, что-то вроде «myemail». Я получаю эту ошибку:

Указанная строка не в форме, необходимой для адреса электронной почты

Я полагаю, это происходит потому, что код проверяется, если переменная имеет @anydomain в строке.

Могу ли я переопределить его и позволить пользователю пытаться отправлять электронные письма без указания адреса @domain в своем адресе?

1 Ответ

0 голосов
/ 16 мая 2018

Насколько я знаю, SMTP требует, чтобы все почтовые ящики получателей имели доменную часть. Возможно, вы сможете взаимодействовать с определенной почтовой системой через другие протоколы, которые позволяют взаимодействовать только с локальными почтовыми ящиками, но вы не должны ожидать, что средствами SMTP будут средства для этого.

За RFC 5321 :

Разрешены только разрешаемые, полностью определенные доменные имена (FQDN) когда доменные имена используются в SMTP ... Есть два исключения правило, требующее полного доменного имени

Зарезервированное имя почтового ящика "postmaster" может использоваться в RCPT команда без указания домена

Что, в свою очередь, приводит нас к синтаксису команды RCPT :

rcpt = "RCPT TO:" ( "<Postmaster@" Domain ">" / "<Postmaster>" /
              Forward-path ) [SP Rcpt-parameters] CRLF

Таким образом, единственная общедоступная форма, которая доступна, это Forward-Path, которая через несколько прыжков (и игнорирование некоторых устаревших опций, которые здесь вам не нужны) приводит нас к синтаксису Mailbox:

Mailbox        = Local-part "@" ( Domain / address-literal )

Итак, в любом случае вы должны иметь @, и тогда ваш выбор сводится к доменному имени или IP-адресу. Обратите внимание, что это может дать нам открытие - вы можете получить желаемое, указав адреса как myemail@127.0.0.1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...