Как послать электронное письмо с моим сервером CentOS?

Renice sshd обработайте для повышения его приоритета. Должен помочь, когда ресурсы трудны

21
задан 27 October 2010 в 09:57
9 ответов

/bin/mail -s "Enter Subject Line here" -a /home/.../whateverFileYouWantAttached "you@YourEmailAddress" < /home/me/textBody.letter

попробуйте выше команды :)

13
ответ дан 2 December 2019 в 20:06
  • 1
    я попробовал эту команду и она не работала. Никакие ошибки или что-либо. Просто никакая почта, обнаруживающаяся в моем ящике входящих сообщений Gmail. Посмотрите выше на то, что мой maillog говорит –  Jake Wilson 27 October 2010 в 09:55
  • 2
    Так... какая-либо причина, почему это не работает на меня? На какой журнал я должен смотреть определить, почему я не получаю почты? –  Jake Wilson 1 December 2010 в 04:22

Простой ответ:

Настроенный sendmail. Это будет зависеть от Вашего распределения, но это не трудно вообще. Если Вы имеете какие-либо конкретные вопросы, спрашиваете далеко.

Сложный ответ:

Если Вы спрашиваете это, Вы, вероятно, не должны просто забегать вперед и устанавливать sendmail justtt все же.

Необходимо будет несколько принять вещи во внимание:

  1. Ваш ISP позволяет Вам посылать электронное письмо? Вы могли бы быть на диапазоне IP несервера и поэтому, многие почтовые поставщики заблокируют Ваше прямое.

  2. Какой адрес Вы будете использовать в качестве Вашего от адреса? Вы разрешены послать с этого адреса (SPF, DomainKeys, и т.д.)? В противном случае Ваши сообщения могли бы быть обнаружены как спам почтовыми поставщиками---и законно так.

  3. Наконец, что не менее важно: необходимо ли действительно использовать собственный сервис SMTP? Какая-либо причина, почему использование Вашего ISP не достаточно хорошо?

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

6
ответ дан 2 December 2019 в 20:06

Необходимо сделать следующее:

  1. sudo yum install postfix telnet mailx
  2. sudo /etc/init.d/postfix start
  3. sudo vi /etc/postfix/main.cf
  4. Изменение mydestination = mydomain.com, localhost.mydomain.com, localhost

    кому:

    mydestination = localhost.mydomain.com, localhost

Тест с помощью следования из командной строки

  1. почтовый Предмет address@example.com:
  2. Тестовая электронная почта от Теста demoslice.com
  3. тело электронной почты.
  4. .

№ 4 - существует только точка для завершения тела электронной почты. У Вас теперь должна быть почта.

Вышеупомянутое получит Вас рабочий MTA (Агент Передачи почты). Некоторые ресурсы, которые помогут Вам с большей расширенной настройкой, могут быть найдены в статьях slicehost о почтовой установке для CentOS (прокрутите вниз к CentOS и почтовому разделу). Необходимо действительно рассмотреть установку следующего правильно: имя хоста, RDNS (Реверс DNS) и SPF (Платформа политики Отправителя) записывает с Вашим поставщиком DNS.

2
ответ дан 2 December 2019 в 20:06

Попытайтесь установить постфикс и установите mydestination в конфигурационном файле, даже он должен работать с sendmail.

0
ответ дан 2 December 2019 в 20:06

Вы изменили свой/etc/mail.rc для установки адреса smtp?

1
ответ дан 2 December 2019 в 20:06
  • 1
    Содержание /etc/mail.rc set ask askcc append dot save crt ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Что Вы предлагаете, чтобы я сделал? –  Jake Wilson 1 December 2010 в 04:20

Postfix находится на правильном пути, но если Gmail не считает, что вы хотя бы удаленно легальны (например, вы не спамер), получение вашей почты маловероятно.

Процесс немного сложно разместить здесь, но самый простой способ, который я нашел для достижения этого (и доставки вашей почты), - это настроить postfix в качестве ретранслятора, используя вашу собственную учетную запись Gmail в качестве транспорта.

Процесс, который я использую подробно описано здесь:

http://rs20.mine.nu/w/2011/07/gmail-as-relay-host-in-postfix/

Нет необходимости настраивать самоподписанные сертификаты (согласно sendmail ) и по моему опыту, это просто работает!

0
ответ дан 2 December 2019 в 20:06

Я могу подтвердить, что ни одно из приведенных выше предложений не работает в моей системе CentOS дома - ни одно из них. Что раздражает!

Затем я попробовал то же самое на новом экземпляре Amazon с CentOS 6.4, и даже с конфигурацией по умолчанию я могу отправлять почту без проблем. Все, что мне нужно было сделать, это

yum install mailx

, после чего отправка почты, как описано выше, работает как шарм. Установка таких сложностей, как sendmail, НЕ обязательна для того, что пытается сделать Якуб.

Это должна быть некоторая конфигурация с моим интернет-провайдером, так как у меня здесь нет настраиваемого брандмауэра.

3
ответ дан 2 December 2019 в 20:06

Простым решением является не sendmail, а sendEmail:

http://caspian.dotconf.net/menu/Software/SendEmail/#download

Сценарий Perl, который легко настроен для отправки через любой SMTP-сервер, к которому вы можете добраться - я использую его для отправки через учетные записи Gmail все время, но он также работает для обычного SMTP через TCP через порт 25 и т. д.

Я обычно оборачиваю perl-скрипт sendEmail с моим собственным сценарием оболочки для Gmail:

#!/bin/bash

# Send gmail through an account specified in ~/.sendGmailAuthFile (or file identified with -k.)
# The auth file must have values for the -f (from@domain) and -xp (password) options of sendEmail,
# structured as:
#
#    user=me.surnamen@gmail.com
#    pwd=xxxxxxx
#
# We will fill in the rest, and other params are passed through to sendEmail
#
# Example: sendGmail -u "My subject line" -t "test@whatever.com" < message.txt

function sendGmailImmed {
        local authFile="$HOME/.sendGmailAuthFile"
        for arg in "$@"; do
                if [[ "$arg" == "-k" ]]; then
                        shift
                        authFile="$1"
                        shift
                fi
        done
        initAuthFile $authFile
        source $authFile

        sendEmail -f $user -xu $user -xp $pwd -s smtp.gmail.com:587 -o tls=yes "$@"
}

function initAuthFile {
        # If the authfile doesn't exist, we'll create a dummy:
        if [[ ! -f $1 ]]; then
                echo "# sendGmail authentication file: " > $1
                echo "user=my.name@gmail.com" >> $1
                echo "pwd=my-password" >> $1
                echo "A shell auth file has been created as $1"
        fi
}

if [[ -z $sourceMe ]]; then
        sendGmailImmed "$@"
fi
0
ответ дан 2 December 2019 в 20:06

Если на локальном хосте не установлен smtp-сервер, вам не нужно его устанавливать, просто укажите тот, который вы используете в качестве smtp-сервера для отправки почты.

yum install -y mailx
mail -S smtp={email_host} -s {subject} -r {email_from} {email_to}
0
ответ дан 3 September 2020 в 22:00

Теги

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