не может послать электронное письмо адресам в моем собственном домене

Принцип Инверсии Зависимости объясняет это хорошо. В частности, рисунок 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:


    
    




или возможно:



31
задан Lightness Races with Monica 14 July 2013 в 17:05
поделиться

7 ответов

У меня сама была эта проблема, когда я недавно перепроектировал сайт.

Возникла проблема с настройками нашей системы вверх, чтобы система решила, что, поскольку электронное письмо пришло из того же домена, оно было спамом, и заблокировала его.

Уточните у системного администратора, разрешено ли вам отправлять электронные письма и т. д.

Либо так, либо ты » мне придется изменить заголовки, чтобы они выглядели так, как будто они отправляются с внешнего адреса. Надеюсь, вы разберетесь.

20
ответ дан 27 November 2019 в 21:27
поделиться

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.

1
ответ дан 27 November 2019 в 21:27
поделиться

Как объяснили другие, некоторые серверы настроены так, чтобы отклонять электронные письма, у которых отсутствует действительный адрес электронной почты на отправляющем сервере. Убедитесь, что строка $ headers включает определенный действительный адрес электронной почты «From: foo@example.com ».

0
ответ дан 27 November 2019 в 21:27
поделиться

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

0
ответ дан 27 November 2019 в 21:27
поделиться

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

0
ответ дан 27 November 2019 в 21:27
поделиться

У меня несколько раз возникала эта проблема, и преступником было то, что электронная почта размещалась на другом сервере (например, Google Apps). Когда почта отправляется в локальный домен, она не утруждает себя поиском MX-записи и поэтому не будет маршрутизирована должным образом. Решение этой проблемы заключается в том, чтобы просто отключить функцию почты на вашем сервере от хоста.

0
ответ дан 27 November 2019 в 21:27
поделиться

Вам нужно установить дополнительный параметр для функции mail. В вашем рабочем примере к адресу электронной почты нужно добавить '-f', например,

mail($toMail, $subject, $message, $header, "-fme@mydomain.com");

10
ответ дан 27 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: