DjPhoeniX
@DjPhoeniX
Hardcore iOS & ESP developer & DJ

Как доказать яндексу, что я сам себе не спамер?

Решил я в одну свою программу добавить самопальный crash reporter. Заводить для этого скрипты на сервере не хотелось бы, поэтому было решено слать дампы на мой e-mail. Одно но — авторизация. Будет очень не круто, если прогу вскроют и вытащат пароль, пусть даже от левого мыла, с которого идёт только отправка. В общем, проблему я решил использованием IdSMTPRelay:
var
  m: TIdMessage;
  r: TIdSMTPRelay;
begin
  // Init
  r := TIdSMTPRelay.Create;
  r.DNSServer := '8.8.8.8';
  m := TIdMessage.Create;
  m.From.Text := 'dump@'+GetComputerName;
  m.Recipients.Add.Address := 'мой@мейл.ру';
  m.Subject := GetComputerName+'''s dump';
  // Base information
  m.Body.Add('OS: '+GetOSVer);
  m.Body.Add('IE: '+GetIEVer);
  m.Body.Add('PC Name: '+GetComputerName);
  m.Body.Add('Username: '+GetUserName);
  // ...
  // Send
  r.Send(m);
  m.Free;
  r.Free;
end;


Всё хорошо, паролей не нужно, однако столкнулся я с тем, что яндекс (чьими почтовыми услугами я пользуюсь) стал reject-ить мою почту. Причём абсолютно внезапно — перестало работать в момент очередного тестового прогона, когда я приаттачил очередной файл. Выпадала ошибка
451 Service temporary unavailable. Please, come back later.


И это temporary — несколько часов подряд. Причём почта ходила, то-есть MX работал.

Проверил после перезагрузки роутера (с новым IP-адресом) — письмо ушло. Но надолго ли это будет работать, и не перестанет ли в тот момент, когда надо будет отправить дамп — чёрт его знает.


Что посоветуете для решения проблемы?
  • Вопрос задан
  • 3228 просмотров
Пригласить эксперта
Ответы на вопрос 6
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
А поддержка яндекса что по этому поводу говорит?
Ответ написан
Где релей находится? Это домашний интернет-канал или для компании? DNS адрес динамический или статический? Обратный DNS прописан и по имени выдает тот же IP, с которого уходит письмо?
Это все признаки, по которым отсекаются спам письма.
Ответ написан
charon
@charon
по вашему коду не всё ясно. Но всё равно можно предложить кое-что:
— лучше всего не использовать бесплатную почту. Добудьте мыло на частном почтовом сервере;
— m.From.Text := 'dump@'+GetComputerName; — это неправильно. Добавляйте лучше имя компьютера в какой-нибудь заголовок письма, или в тему, или в тело;
— отправляйте почту непосредственно через почтовый сервер, который обслуживает почтовый домен To:. В этом случае авторизация не нужна.
Ответ написан
Melkij
@Melkij
PostgreSQL DBA
> И это temporary — несколько часов подряд.
А вы пробовали отослать это же самое письмо повторно? При том, обязательно разорвать коннект, поднять новый и отправить идентичное сообщение?
Пока похоже на типичный грейлистинг в действии.
Ответ написан
dimmaq
@dimmaq
Имхо очень плохое решение. Да и не встречал такого нигде. Обычно отправляют через дефолтный маилклиент (mapi вроде) или по http(s) на свой сервер.
Ответ написан

Яндекс тут при чём?

Отправляйте на MX-ы вашего домена мейл.ру.

Любой примитивный антиспам завернёт подобное:

m.From.Text := 'dump@'+GetComputerName;

Посмотрите в сторону mailgun.com

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы