Решил я в одну свою программу добавить самопальный 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-адресом) — письмо ушло. Но надолго ли это будет работать, и не перестанет ли в тот момент, когда надо будет отправить дамп — чёрт его знает.
Что посоветуете для решения проблемы?