Принцип Инверсии Зависимости объясняет это хорошо. В частности, рисунок 4.
A. Модули высокого уровня не должны зависеть от низкоуровневых модулей. Оба должны зависеть от абстракций.
B. Абстракция не должна зависеть от деталей. Детали должны зависеть от абстракций.
Перевод примеров из ссылки выше в Java:
public class Copy {
private Keyboard keyboard = new Keyboard(); // concrete dependency
private Printer printer = new Printer(); // concrete dependency
public void copy() {
for (int c = keyboard.read(); c != KeyBoard.EOF) {
printer.print(c);
}
}
}
Теперь с инверсией зависимости:
public class Copy {
private Reader reader; // any dependency satisfying the reader interface will work
private Writer writer; // any dependency satisfying the writer interface will work
public void copy() {
for (int c = reader.read(); c != Reader.EOF) {
writer.write(c);
}
}
public Copy(Reader reader, Writer writer) {
this.reader = reader;
this.writer = writer;
}
}
Теперь Copy
поддержки больше, чем просто копирование с клавиатуры на принтер.
Это способно к копированию с любого Reader
к любому Writer
, не требуя никаких модификаций к его коду.
И теперь с Spring:
или возможно:
У меня сама была эта проблема, когда я недавно перепроектировал сайт.
Возникла проблема с настройками нашей системы вверх, чтобы система решила, что, поскольку электронное письмо пришло из того же домена, оно было спамом, и заблокировала его.
Уточните у системного администратора, разрешено ли вам отправлять электронные письма и т. д.
Либо так, либо ты » мне придется изменить заголовки, чтобы они выглядели так, как будто они отправляются с внешнего адреса. Надеюсь, вы разберетесь.
Do you have your email hosted on a different server than the website? If that is the case the PHP script may be trying to send it internally in which case it'll just disappear, while the other target emails will get put on to the internet and routed properly.
The solution I found was to disable the mail server on your web host, and then PHP will put the message on to the internet to be sent properly.
Как объяснили другие, некоторые серверы настроены так, чтобы отклонять электронные письма, у которых отсутствует действительный адрес электронной почты на отправляющем сервере. Убедитесь, что строка $ headers включает определенный действительный адрес электронной почты «From: foo@example.com ».
убедитесь, что вы действительно можете отправлять почту на адрес электронной почты вашего домена, а затем проверьте свой код / адрес электронной почты, убедитесь, что все написано правильно .. если ничего из этого не помогло, я не знаю, что пошло не так ..
У меня была такая же проблема, и, поскольку я был размещен на другом сервере для электронной почты, мне просто пришлось отключить локальный почтовый сервер.
У меня несколько раз возникала эта проблема, и преступником было то, что электронная почта размещалась на другом сервере (например, Google Apps). Когда почта отправляется в локальный домен, она не утруждает себя поиском MX-записи и поэтому не будет маршрутизирована должным образом. Решение этой проблемы заключается в том, чтобы просто отключить функцию почты на вашем сервере от хоста.
Вам нужно установить дополнительный параметр для функции mail. В вашем рабочем примере к адресу электронной почты нужно добавить '-f', например,
mail($toMail, $subject, $message, $header, "-fme@mydomain.com");