Я добавил пользователя в Linux под названием «почтовая программа». Я использую этого пользователя только для отправки исходящей почты, а не для получения. Что мне нужно сделать, чтобы использовать следующую информацию SMTP для отправки исходящей почты?
$config['host'] = 'localhost';
$config['port'] = '25';
$config['secure'] = ''; //ssl or tls
$config['auth'] = 'true';
$config['username'] = 'mailer';
$config['password'] = '******';
Обновить
Кто-нибудь, пожалуйста, помогите, как я могу настроить учетную запись для отправки почты через SMTP?
Обновить
Могу ли я просто использовать информацию SSH в качестве имени пользователя / пароля для отправки почты? Приведенная выше информация о конфигурации использует PHPMailer через SMTP.
Обновить
Я запустил тест для отправки электронной почты через PHPMailer, и журналы почты показывают ...
Aug 31 17:58:55 spireprod postfix/smtpd[14597]: disconnect from unknown[::1]
Aug 31 17:58:55 spireprod postfix/smtp[14601]: DA1491BC1084: to=<email@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.95.27]:25, delay=0.48, delays=0.12/0.01/0.12/0.23, dsn=2.0.0, status=sent (250 2.0.0 OK 1283291935 gy42si22156132ibb.26)
Aug 31 17:58:55 spireprod postfix/qmgr[941]: DA1491BC1084: removed
Проблема в том, что я его так и не получил!
Postfix - это своего рода интерфейс, который принимает письма и отправляет их в зависимости от их домена назначения. Postfix делает не иметь пользователей.
Если вам нужно создать пользователей, а значит - в Linux / Unix - локальных получателей почты, есть команда
useradd
Сделать man useradd
. Это создаст пользователя; проверьте параметры, возможно, вам придется указать домашний каталог и / или создать его. Тогда, пожалуйста, следуйте этому ссылка на сайт.
Обычно в Linux по умолчанию локальная почта принимается Postfix и сохраняется в /var/mail/
пользователь где пользователь это пользователь, который существует локально на сервере.
Postfix, если он настроен для приема и маршрутизации внешней почты, будет принимать решение в зависимости от домен почтового адреса (часть после @
), если он должен хранить его локально (например, пользователь существует локально, домен не указан или домен соответствует mydestination
домены, указанные в main.cf
) или переслать его реле, в зависимости от значения по умолчанию или transport
стол.
Обычно неизвестный домен будет перенаправлен на ретранслятор по умолчанию, или Postfix сможет передать почту на целевой сервер на основе DNS. MX
записи целевого домена.
Вы проверяли, может ли аккаунт отправлять почту?
Есть несколько способов сделать это, но самый простой - подключиться к порту 25 (smtp) вашего почтового сервера по telnet (попробуйте с локальной консоли):
telnet localhost 25
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 myserver.com ESMTP Postfix
EHLO test.com
250-myserver.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: mailer@myserver.com
250 2.1.0 Ok
rcpt to: test@testaddress.com
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test Message
Test
.
250 2.0.0 Ok: queued as 97B7D7640D0
Если вы видите все эти 250 сообщений ОК и ваше сообщение доходит до тестового адреса, значит, учетная запись работает нормально.
Если вы получите сообщение об ошибке, оно укажет, где проблема в конфиге. Если вы получаете сообщение об ошибке после команды MAIL FROM :, значит, пользователю вообще запрещено отправлять почту.
Если вы получаете сообщение об ошибке после команды RCPT TO :, значит, пользователю не разрешено отправлять почту на тестовый адрес.
Если вы получаете сообщение об ошибке после тела письма или сообщение так и не пришло, проверьте файл журнала почты. Очень полезно иметь другое окно с живым просмотром вашего почтового журнала - tail -f /var/log/maillog
позволит вам видеть, что происходит на вашем почтовом сервере, как это происходит. Очень полезно при отслеживании вещей.
Вы также можете протестировать, переключившись на пользователя почтовой программы и используя почтовая команда для отправки тестового сообщения - одновременно просмотрите журнал рассылки, чтобы узнать, что происходит.
В Postfix у вас может быть пользователь, которому будет разрешено отправлять электронные письма без реального почтового ящика.
Этот пользователь будет использоваться только для выполнения операции отправки электронной почты, но postfix не проверяет, совпадает ли имя пользователя с адресом электронной почты, используемым для отправки электронной почты (если вы тоже не спрашиваете).
Ясно, что пользователь mailer может отправлять электронную почту с полем «mail from» по адресам foo@gmail.com, bar@hotmail.com и так далее ... кому угодно.
Вы можете сделать это двумя разными способами:
Если ваш постфикс и ваше отправляющее приложение находятся на одном компьютере (как в вашем примере), установите конфигурацию постфикса следующим образом
smtpd_recipient_restrictions = allow_mynetworks, reject_unauth_destination
mynetworks = 127.0.0.0/8
Если ваш клиент находится на другом компьютере, настройте аутентификацию SASL в постфиксе и установите ограничение, как показано ниже.
smtpd_recipient_restrictions = permission_sasl_authenticated, allowed_mynetworks, reject_unauth_destination
Когда ваш пользовательский "mailer" отправит электронное письмо, postfix будет контролировать его учетные данные перед тем, как разрешить команду "RCPT TO". Если он совпадает, «почтовая программа» будет авторизована для выполнения операции с любым значением «RCPT TO»: почтовая программа может отправлять электронные письма кому угодно. Поле MAIL FROM не контролируется, поэтому вы можете поместить туда что угодно.