Server ≫ Linux Server ≫ Fedora Core 6 ≫ SMTPサーバー

 
   
SMTPサーバ
   
  SMTPサーバとはメールを送信するサーバのことです。

fedora では通常 sendmail と言うSMTPサーバーが起動されていますが、ここでは比較的設定の簡単な postfix と言うソフトを使いSMTPサーバを立ち上げます

また、不正中継されないようにメール送信時にユーザ名とパスワードで認証を行なう SMTP-Auth 機能追加します。

   
   
postfixのインストール
   
 

下記のように入力します。青文字が入力文字です。

   
   
 
[root@linux]# yum install postfix    ← 入力
 
Loading "installonlyn" plugin
 Setting up Install Process
 Setting up repositories
 core                          100% |=========================| 1.1 kB 00:00
 extras                        100% |=========================| 1.1 kB 00:00
 updates                       100% |=========================| 1.2 kB 00:00
 Reading repository metadata in from local files
 Parsing package install arguments
 Resolving Dependencies
 --> Populating transaction set with selected packages. Please wait.
 ---> Downloading header for postfix to pack into transaction set.
 postfix-2.3.3-2.i386.rpm      100% |=========================| 41 kB 00:00
 ---> Package postfix.i386 2:2.3.3-2 set to be updated
 --> Running transaction check

 Dependencies Resolved

 =============================================================================
   Package                 Arch        Version          Repository       Size
 =============================================================================
 Installing:
   postfix                 i386        2:2.3.3-2        core             3.6 M

 Transaction Summary
 =============================================================================
 Install   1 Package(s)
 Update    0 Package(s)
 Remove    0 Package(s)

 Total download size: 3.6 M
 Is this ok [y/N]:
y    ← y を入力
 Downloading Packages:
 (1/1): postfix-2.3.3-2.i3    100% |=========================| 3.6 MB 00:15
 Running Transaction Test
 Finished Transaction Test
 Transaction Test Succeeded
 Running Transaction
   Installing: postfix                       ######################### [1/1]
 postfix: fatal: config variable inet_ierfaces: host not found: localhost

 Installed: postfix.i386 2:2.3.3-2
 Complete!
    ← Complete! と表示されればインストール完了

 
   
   
postfixの設定
   
  postfixの設定ファイルを開きます。下記のように緑色の部分を黄色に変更(書き換え・削除)して下さい。赤文字は説明です。青文字が入力文字です。
   
   
 
[root@linux]# vi /etc/postfix/main.cf    ← 入力
 
 # Global Postfix configuration file. This file lists only a subset
 # of all 300+ parameters. See the postconf(5) manual page for a
 # complete list.
 #
 # The general format of each line is: parameter = value. Lines
 # that begin with whitespace continue the previous line. A value can
 # contain references to other $names or ${name}s.
 #
 # NOTE - CHANGE NO MORE THAN 2-3 PARAMETERS AT A TIME, AND TEST IF
 # POSTFIX STILL WORKS AFTER EVERY CHANGE.
 
 # SOFT BOUNCE
 #
 # The soft_bounce parameter provides a limited safety net for
 # testing. When soft_bounce is enabled, mail will remain queued that
 # would otherwise bounce. This parameter disables locally-generated
 # bounces, and prevents the SMTP server from rejecting mail permanently
 # (by changing 5xx replies into 4xx replies). However, soft_bounce
 # is no cure for address rewriting mistakes or mail routing mistakes.
 #
 #soft_bounce = no

 # LOCAL PATHNAME INFORMATION
 #
 # The queue_directory specifies the location of the Postfix queue.
 # This is also the root directory of Postfix daemons that run chrooted.
 # See the files in examples/chroot-setup for setting up Postfix chroot
 # environments on different UNIX systems.
 #
 queue_directory = /var/spool/postfix

 # The command_directory parameter specifies the location of all
 # postXXX commands.
 #
 command_directory = /usr/sbin

 # The daemon_directory parameter specifies the location of all Postfix
 # daemon programs (i.e. programs listed in the master.cf file). This
 # directory must be owned by root.
 #
 daemon_directory = /usr/libexec/postfix

 # QUEUE AND PROCESS OWNERSHIP
 #
 # The mail_owner parameter specifies the owner of the Postfix queue
 # and of most Postfix daemon processes. Specify the name of a user
 # account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
 # AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM. In
 # particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
 # USER.
 #
 mail_owner = postfix

 # The default_privs parameter specifies the default rights used by
 # the local delivery agent for delivery to external file or command.
 # These rights are used in the absence of a recipient user context.
 # DO NOT SPECIFY A PRIVILEGED USER OR THE POSTFIX OWNER.
 #
 #default_privs = nobody
 
 # INTERNET HOST AND DOMAIN NAMES
 #
 # The myhostname parameter specifies the internet hostname of this
 # mail system. The default is to use the fully-qualified domain name
 # from gethostname(). $myhostname is used as a default value for many
 # other configuration parameters.
 #
 
#myhostname = host.domain.tld
       ↓ 
 
myhostname = xxxx.com ← コメントの解除(ドメイン名の指定     xxxx.com = ドメイン名)
 #myhostname = virtual.domain.tld
                               
 # The mydomain parameter specifies the local internet domain name.
 # The default is to use $myhostname minus the first component.
 # $mydomain is used as a default value for many other configuration
 # parameters.
 #
 
#mydomain = domain.tld
    ↓ 
 
mydomain = xxxx.com ← コメントの解除(ドメイン名の指定 xxxx.com = ドメイン名)

 # SENDING MAIL
 #
 # The myorigin parameter specifies the domain that locally-posted
 # mail appears to come from. The default is to append $myhostname,
 # which is fine for small sites. If you run a domain with multiple
 # machines, you should (1) change this to $mydomain and (2) set up
 # a domain-wide alias database that aliases each user to
 # user@that.users.mailhost.
 #
 # For the sake of consistency between sender and recipient addresses,
 # myorigin also specifies the default domain name that is appended
 # to recipient addresses that have no @domain part.
 #
 #myorigin = $myhostname
 
#myorigin = $mydomain
    ↓
 
myorigin = $mydomain ← コメントの解除(メールアドレスの@以降をドメイン名にする)
 
 # RECEIVING MAIL

 # The inet_interfaces parameter specifies the network interface
 # addresses that this mail system receives mail on. By default,
 # the software claims all active interfaces on the machine. The
 # parameter also controls delivery of mail to user@[ip.address].
 #
 # See also the proxy_interfaces parameter, for network addresses that
 # are forwarded to us via a proxy or network address translator.
 #
 # Note: you need to stop/start Postfix when this parameter changes.
 #
 #inet_interfaces = all
 #inet_interfaces = $myhostname
 #inet_interfaces = $myhostname, localhost
 inet_interfaces = localhost
    ↓ 
 
inet_interfaces = all ← 全てのインターフェースで待ち受けるようにする
 
 # The proxy_interfaces parameter specifies the network interface
 # addresses that this mail system receives mail on by way of a
 # proxy or network address translation unit. This setting extends
 # the address list specified with the inet_interfaces parameter.
 #
 # You must specify your proxy/NAT addresses when your system is a
 # backup MX host for other domains, otherwise mail delivery loops
 # will happen when the primary MX host is down.
 #
 #proxy_interfaces =
 #proxy_interfaces = 1.2.3.4
 
 # The mydestination parameter specifies the list of domains that this
 # machine considers itself the final destination for.
 #
 # These domains are routed to the delivery agent specified with the
 # local_transport parameter setting. By default, that is the UNIX
 # compatible delivery agent that lookups all recipients in /etc/passwd
 # and /etc/aliases or their equivalent.
 #
 # The default is $myhostname + localhost.$mydomain. On a mail domain
 # gateway, you should also include $mydomain.
 #
 # Do not specify the names of virtual domains - those domains are
 # specified elsewhere (see VIRTUAL_README).
 #
 # Do not specify the names of domains that this machine is backup MX
 # host for. Specify those names via the relay_domains settings for
 # the SMTP server, or use permit_mx_backup if you are lazy (see
 # STANDARD_CONFIGURATION_README).
 #
 # The local machine is always the final destination for mail addressed
 # to user@[the.net.work.address] of an interface that the mail system
 # receives mail on (see the inet_interfaces parameter).
 #
 # Specify a list of host or domain names, /file/name or type:table
 # patterns, separated by commas and/or whitespace. A /file/name
 # pattern is replaced by its contents; a type:table is matched when
 # a name matches a lookup key (the right-hand side is ignored).
 # Continue long lines by starting the next line with whitespace.
 #
 # See also below, section "REJECTING MAIL FOR UNKNOWN LOCAL USERS".
 #
 #mydestination = $myhostname, localhost.$mydomain, localhost ← コメント化
 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ←  コメント解除
 #mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
 # mail.$mydomain, www.$mydomain, ftp.$mydomain

 # REJECTING MAIL FOR UNKNOWN LOCAL USERS
 #
 # The local_recipient_maps parameter specifies optional lookup tables
 # with all names or addresses of users that are local with respect
 # to $mydestination, $inet_interfaces or $proxy_interfaces.
 #
 # If this parameter is defined, then the SMTP server will reject
 # mail for unknown local users. This parameter is defined by default.
 #
 # To turn off local recipient checking in the SMTP server, specify
 # local_recipient_maps = (i.e. empty).
 #
 # The default setting assumes that you use the default Postfix local
 # delivery agent for local delivery. You need to update the
 # local_recipient_maps setting if:
 #
 # - You define $mydestination domain recipients in files other than
 # /etc/passwd, /etc/aliases, or the $virtual_alias_maps files.
 # For example, you define $mydestination domain recipients in
 # the $virtual_mailbox_maps files.
 #
 # - You redefine the local delivery agent in master.cf.
 #
 # - You redefine the "local_transport" setting in main.cf.
 #
 # - You use the "luser_relay", "mailbox_transport", or "fallback_transport"
 # feature of the Postfix local delivery agent (see local(8)).
 #
 # Details are described in the LOCAL_RECIPIENT_README file.
 #
 # Beware: if the Postfix SMTP server runs chrooted, you probably have
 # to access the passwd file via the proxymap service, in order to
 # overcome chroot restrictions. The alternative, having a copy of
 # the system passwd file in the chroot jail is just not practical.
 #
 # The right-hand side of the lookup tables is conveniently ignored.
 # In the left-hand side, specify a bare username, an @domain.tld
 # wild-card, or specify a user@domain.tld address.
 #
 #local_recipient_maps = unix:passwd.byname $alias_maps
 #local_recipient_maps = proxy:unix:passwd.byname $alias_maps
 #local_recipient_maps =

 # The unknown_local_recipient_reject_code specifies the SMTP server
 # response code when a recipient domain matches $mydestination or
 # ${proxy,inet}_interfaces, while $local_recipient_maps is non-empty
 # and the recipient address or address local-part is not found.
 #
 # The default setting is 550 (reject mail) but it is safer to start
 # with 450 (try again later) until you are certain that your
 # local_recipient_maps settings are OK.
 #
 unknown_local_recipient_reject_code = 550

 # TRUST AND RELAY CONTROL

 # The mynetworks parameter specifies the list of "trusted" SMTP
 # clients that have more privileges than "strangers".
 #
 # In particular, "trusted" SMTP clients are allowed to relay mail
 # through Postfix. See the smtpd_recipient_restrictions parameter
 # in postconf(5).
 #
 # You can specify the list of "trusted" network addresses by hand
 # or you can let Postfix do it for you (which is the default).
 #
 # By default (mynetworks_style = subnet), Postfix "trusts" SMTP
 # clients in the same IP subnetworks as the local machine.
 # On Linux, this does works correctly only with interfaces specified
 # with the "ifconfig" command.
 #
 # Specify "mynetworks_style = class" when Postfix should "trust" SMTP
 # clients in the same IP class A/B/C networks as the local machine.
 # Don't do this with a dialup site - it would cause Postfix to "trust"
 # your entire provider's network. Instead, specify an explicit
 # mynetworks list by hand, as described below.
 #
 # Specify "mynetworks_style = host" when Postfix should "trust"
 # only the local machine.
 #
 #mynetworks_style = class
 #mynetworks_style = subnet
 #mynetworks_style = host

 # Alternatively, you can specify the mynetworks list by hand, in
 # which case Postfix ignores the mynetworks_style setting.
 #
 # Specify an explicit list of network/netmask patterns, where the
 # mask specifies the number of bits in the network part of a host
 # address.
 #
 # You can also specify the absolute pathname of a pattern file instead
 # of listing the patterns here. Specify type:table for table-based lookups
 # (the value on the table right-hand side is not used).
 #
 #mynetworks = 168.100.189.0/28, 127.0.0.0/8
 #mynetworks = $config_directory/mynetworks
 #mynetworks = hash:/etc/postfix/network_table
 
mynetworks = 192.168.0.0/24, 127.0.0.0/8 ← 追記
 
 # The relay_domains parameter restricts what destinations this system will
 # relay mail to. See the smtpd_recipient_restrictions description in
 # postconf(5) for detailed information.
 #
 # By default, Postfix relays mail
 # - from "trusted" clients (IP address matches $mynetworks) to any destination,
 # - from "untrusted" clients to destinations that match $relay_domains or
 # subdomains thereof, except addresses with sender-specified routing.
 # The default relay_domains value is $mydestination.
 #
 # In addition to the above, the Postfix SMTP server by default accepts mail
 # that Postfix is final destination for:
 # - destinations that match $inet_interfaces or $proxy_interfaces,
 # - destinations that match $mydestination
 # - destinations that match $virtual_alias_domains,
 # - destinations that match $virtual_mailbox_domains.
 # These destinations do not need to be listed in $relay_domains.
 #
 # Specify a list of hosts or domains, /file/name patterns or type:name
 # lookup tables, separated by commas and/or whitespace. Continue
 # long lines by starting the next line with whitespace. A file name
 # is replaced by its contents; a type:name table is matched when a
 # (parent) domain appears as lookup key.
 #
 # NOTE: Postfix will not automatically forward mail for domains that
 # list this system as their primary or backup MX host. See the
 # permit_mx_backup restriction description in postconf(5).
 #
 #relay_domains = $mydestination
   ↓
 
relay_domains = $mydestination ← コメントの解除(中継許可をする)

 # INTERNET OR INTRANET

 # The relayhost parameter specifies the default host to send mail to
 # when no entry is matched in the optional transport(5) table. When
 # no relayhost is given, mail is routed directly to the destination.
 #
 # On an intranet, specify the organizational domain name. If your
 # internal DNS uses no MX records, specify the name of the intranet
 # gateway host instead.
 #
 # In the case of SMTP, specify a domain, host, host:port, [host]:port,
 # [address] or [address]:port; the form [host] turns off MX lookups.
 #
 # If you're connected via UUCP, see also the default_transport parameter.
 #
 #relayhost = $mydomain
 #relayhost = [gateway.my.domain]
 #elayhost = [mailserver.isp.tld]
 #relayhost = uucphost
 #relayhost = [an.ip.add.ress]

 # REJECTING UNKNOWN RELAY USERS
 #
 # The relay_recipient_maps parameter specifies optional lookup tables
 # with all addresses in the domains that match $relay_domains.
 #
 # If this parameter is defined, then the SMTP server will reject
 # mail for unknown relay users. This feature is off by default.
 #
 # The right-hand side of the lookup tables is conveniently ignored.
 # In the left-hand side, specify an @domain.tld wild-card, or specify
 # a user@domain.tld address.
 #
 #relay_recipient_maps = hash:/etc/postfix/relay_recipients

 # INPUT RATE CONTROL
 #
 # The in_flow_delay configuration parameter implements mail input
 # flow control. This feature is turned on by default, although it
 # still needs further development (it's disabled on SCO UNIX due
 # to an SCO bug).
 #
 # A Postfix process will pause for $in_flow_delay seconds before
 # accepting a new message, when the message arrival rate exceeds the
 # message delivery rate. With the default 100 SMTP server process
 # limit, this limits the mail inflow to 100 messages a second more
 # than the number of messages delivered per second.
 #
 # Specify 0 to disable the feature. Valid delays are 0..10.
 #
 #in_flow_delay = 1s

 # ADDRESS REWRITING
 #
 # The ADDRESS_REWRITING_README document gives information about
 # address masquerading or other forms of address rewriting including
 # username->Firstname.Lastname mapping.

 # ADDRESS REDIRECTION (VIRTUAL DOMAIN)
 #
 # The VIRTUAL_README document gives information about the many forms
 # of domain hosting that Postfix supports.

 # "USER HAS MOVED" BOUNCE MESSAGES
 #
 # See the discussion in the ADDRESS_REWRITING_README document.

 # TRANSPORT MAP
 #
 # See the discussion in the ADDRESS_REWRITING_README document.

 # ALIAS DATABASE
 #
 # The alias_maps parameter specifies the list of alias databases used
 # by the local delivery agent. The default list is system dependent.
 #
 # On systems with NIS, the default is to search the local alias
 # database, then the NIS alias database. See aliases(5) for syntax
 # details.
 #
 # If you change the alias database, run "postalias /etc/aliases" (or
 # wherever your system stores the mail alias file), or simply run
 # "newaliases" to build the necessary DBM or DB file.
 #
 # It will take a minute or so before changes become visible. Use
 # "postfix reload" to eliminate the delay.
 #
 #alias_maps = dbm:/etc/aliases
 alias_maps = hash:/etc/aliases
 #alias_maps = hash:/etc/aliases, nis:mail.aliases
 #alias_maps = netinfo:/aliases

 # The alias_database parameter specifies the alias database(s) that
 # are built with "newaliases" or "sendmail -bi". This is a separate
 # configuration parameter, because alias_maps (see above) may specify
 # tables that are not necessarily all under control by Postfix.
 #
 #alias_database = dbm:/etc/aliases
 #alias_database = dbm:/etc/mail/aliases
 alias_database = hash:/etc/aliases
 #alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases

 # ADDRESS EXTENSIONS (e.g., user+foo)
 #
 # The recipient_delimiter parameter specifies the separator between
 # user names and address extensions (user+foo). See canonical(5),
 # local(8), relocated(5) and virtual(5) for the effects this has on
 # aliases, canonical, virtual, relocated and .forward file lookups.
 # Basically, the software tries user+foo and .forward+foo before
 # trying user and .forward.
 #
 #recipient_delimiter = +

 # DELIVERY TO MAILBOX
 #
 # The home_mailbox parameter specifies the optional pathname of a
 # mailbox file relative to a user's home directory. The default
 # mailbox file is /var/spool/mail/user or /var/mail/user. Specify
 # "Maildir/" for qmail-style delivery (the / is required).
 #
 #home_mailbox = Mailbox
 #home_mailbox = Maildir/
   ↓
 
home_mailbox = Maildir/ ← コメントの解除(メールボックスを各ユーザーのホームにする)

 # The mail_spool_directory parameter specifies the directory where
 # UNIX-style mailboxes are kept. The default setting depends on the
 # system type.
 #
 #mail_spool_directory = /var/mail
 #mail_spool_directory = /var/spool/mail

 # The mailbox_command parameter specifies the optional external
 # command to use instead of mailbox delivery. The command is run as
 # the recipient with proper HOME, SHELL and LOGNAME environment settings.
 # Exception: delivery for root is done as $default_user.
 #
 # Other environment variables of interest: USER (recipient username),
 # EXTENSION (address extension), DOMAIN (domain part of address),
 # and LOCAL (the address localpart).
 #
 # Unlike other Postfix configuration parameters, the mailbox_command
 # parameter is not subjected to $parameter substitutions. This is to
 # make it easier to specify shell syntax (see example below).
 #
 # Avoid shell meta characters because they will force Postfix to run
 # an expensive shell process. Procmail alone is expensive enough.
 #
 # IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
 # ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
 #
 #mailbox_command = /some/where/procmail
 #mailbox_command = /some/where/procmail -a "$EXTENSION"

 # The mailbox_transport specifies the optional transport in master.cf
 # to use after processing aliases and .forward files. This parameter
 # has precedence over the mailbox_command, fallback_transport and
 # luser_relay parameters.
 #
 # Specify a string of the form transport:nexthop, where transport is
 # the name of a mail delivery transport defined in master.cf. The
 # :nexthop part is optional. For more details see the sample transport
 # configuration file.
 #
 # NOTE: if you use this feature for accounts not in the UNIX password
 # file, then you must update the "local_recipient_maps" setting in
 # the main.cf file, otherwise the SMTP server will reject mail for
 # non-UNIX accounts with "User unknown in local recipient table".
 #
 #mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp

 # If using the cyrus-imapd IMAP server deliver local mail to the IMAP
 # server using LMTP (Local Mail Transport Protocol), this is prefered
 # over the older cyrus deliver program by setting the
 # mailbox_transport as below:
 #
 # mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
 #
 # The efficiency of LMTP delivery for cyrus-imapd can be enhanced via
 # these settings.
 #
 # local_destination_recipient_limit = 300
 # local_destination_concurrency_limit = 5
 #
 # Of course you should adjust these settings as appropriate for the
 # capacity of the hardware you are using. The recipient limit setting
 # can be used to take advantage of the single instance message store
 # capability of Cyrus. The concurrency limit can be used to control
 # how many simultaneous LMTP sessions will be permitted to the Cyrus
 # message store.
 #
 # To use the old cyrus deliver program you have to set:
 #mailbox_transport = cyrus

 # The fallback_transport specifies the optional transport in master.cf
 # to use for recipients that are not found in the UNIX passwd database.
 # This parameter has precedence over the luser_relay parameter.
 #
 # Specify a string of the form transport:nexthop, where transport is
 # the name of a mail delivery transport defined in master.cf. The
 # :nexthop part is optional. For more details see the sample transport
 # configuration file.
 #
 # NOTE: if you use this feature for accounts not in the UNIX password
 # file, then you must update the "local_recipient_maps" setting in
 # the main.cf file, otherwise the SMTP server will reject mail for
 # non-UNIX accounts with "User unknown in local recipient table".
 #
 #fallback_transport = lmtp:unix:/var/lib/imap/socket/lmtp
 #fallback_transport =

 # The luser_relay parameter specifies an optional destination address
 # for unknown recipients. By default, mail for unknown@$mydestination,
 # unknown@[$inet_interfaces] or unknown@[$proxy_interfaces] is returned
 # as undeliverable.
 #
 # The following expansions are done on luser_relay: $user (recipient
 # username), $shell (recipient shell), $home (recipient home directory),
 # $recipient (full recipient address), $extension (recipient address
 # extension), $domain (recipient domain), $local (entire recipient
 # localpart), $recipient_delimiter. Specify ${name?value} or
 # ${name:value} to expand value only when $name does (does not) exist.
 #
 # luser_relay works only for the default Postfix local delivery agent.
 #
 # NOTE: if you use this feature for accounts not in the UNIX password
 # file, then you must specify "local_recipient_maps =" (i.e. empty) in
 # the main.cf file, otherwise the SMTP server will reject mail for
 # non-UNIX accounts with "User unknown in local recipient table".
 #
 #luser_relay = $user@other.host
 #luser_relay = $local@other.host
 #luser_relay = admin+$local

 # JUNK MAIL CONTROLS
 #
 # The controls listed here are only a very small subset. The file
 # SMTPD_ACCESS_README provides an overview.

 # The header_checks parameter specifies an optional table with patterns
 # that each logical message header is matched against, including
 # headers that span multiple physical lines.
 #
 # By default, these patterns also apply to MIME headers and to the
 # headers of attached messages. With older Postfix versions, MIME and
 # attached message headers were treated as body text.
 #
 # For details, see "man header_checks".
 #
 #header_checks = regexp:/etc/postfix/header_checks

 # FAST ETRN SERVICE
 #
 # Postfix maintains per-destination logfiles with information about
 # deferred mail, so that mail can be flushed quickly with the SMTP
 # "ETRN domain.tld" command, or by executing "sendmail -qRdomain.tld".
 # See the ETRN_README document for a detailed description.
 #
 # The fast_flush_domains parameter controls what destinations are
 # eligible for this service. By default, they are all domains that
 # this server is willing to relay mail to.
 #
 #fast_flush_domains = $relay_domains

 # SHOW SOFTWARE VERSION OR NOT
 #
 # The smtpd_banner parameter specifies the text that follows the 220
 # code in the SMTP server's greeting banner. Some people like to see
 # the mail version advertised. By default, Postfix shows no version.
 #
 # You MUST specify $myhostname at the start of the text. That is an
 # RFC requirement. Postfix itself does not care.
 #
 #smtpd_banner = $myhostname ESMTP $mail_name
 #smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)

 # PARALLEL DELIVERY TO THE SAME DESTINATION
 #
 # How many parallel deliveries to the same user or domain? With local
 # delivery, it does not make sense to do massively parallel delivery
 # to the same user, because mailbox updates must happen sequentially,
 # and expensive pipelines in .forward files can cause disasters when
 # too many are run at the same time. With SMTP deliveries, 10
 # simultaneous connections to the same domain could be sufficient to
 # raise eyebrows.
 #
 # Each message delivery transport has its XXX_destination_concurrency_limit
 # parameter. The default is $default_destination_concurrency_limit for
 # most delivery transports. For the local delivery agent the default is 2.

 #local_destination_concurrency_limit = 2
 #default_destination_concurrency_limit = 20

 # DEBUGGING CONTROL
 #
 # The debug_peer_level parameter specifies the increment in verbose
 # logging level when an SMTP client or server host name or address
 # matches a pattern in the debug_peer_list parameter.
 #
 debug_peer_level = 2

 # The debug_peer_list parameter specifies an optional list of domain
 # or network patterns, /file/name patterns or type:name tables. When
 # an SMTP client or server host name or address matches a pattern,
 # increase the verbose logging level by the amount specified in the
 # debug_peer_level parameter.
 #
 #debug_peer_list = 127.0.0.1
 #debug_peer_list = some.domain

 # The debugger_command specifies the external command that is executed
 # when a Postfix daemon program is run with the -D option.
 #
 # Use "command .. & sleep 5" so that the debugger can attach before
 # the process marches on. If you use an X-based debugger, be sure to
 # set up your XAUTHORITY environment variable before starting Postfix.
 #
 debugger_command =
 PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
 xxgdb $daemon_directory/$process_name $process_id & sleep 5

 # If you can't use X, use this to capture the call stack when a
 # daemon crashes. The result is in a file in the configuration
 # directory, and is named after the process name and the process ID.
 #
 # debugger_command =
 # PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
 # echo where) | gdb $daemon_directory/$process_name $process_id 2>&1
 # >$config_directory/$process_name.$process_id.log & sleep 5
 #
 # Another possibility is to run gdb under a detached screen session.
 # To attach to the screen sesssion, su root and run "screen -r
 # <id_string>" where <id_string> uniquely matches one of the detached
 # sessions (from "screen -list").
 #
 # debugger_command =
 # PATH=/bin:/usr/bin:/sbin:/usr/sbin; export PATH; screen
 # -dmS $process_name gdb $daemon_directory/$process_name
 # $process_id & sleep 1

 # INSTALL-TIME CONFIGURATION INFORMATION
 #
 # The following parameters are used when installing a new Postfix version.
 #
 # sendmail_path: The full pathname of the Postfix sendmail command.
 # This is the Sendmail-compatible mail posting interface.
 #
 sendmail_path = /usr/sbin/sendmail.postfix

 # newaliases_path: The full pathname of the Postfix newaliases command.
 # This is the Sendmail-compatible command to build alias databases.
 #
 newaliases_path = /usr/bin/newaliases.postfix

 # mailq_path: The full pathname of the Postfix mailq command. This
 # is the Sendmail-compatible mail queue listing command.
 #
 mailq_path = /usr/bin/mailq.postfix

 # setgid_group: The group for mail submission and queue management
 # commands. This must be a group name with a numerical group ID that
 # is not shared with other accounts, not even with the Postfix account.
 #
 setgid_group = postdrop

 # html_directory: The location of the Postfix HTML documentation.
 #
 html_directory = no

 # manpage_directory: The location of the Postfix on-line manual pages.
 #
 manpage_directory = /usr/share/man

 # sample_directory: The location of the Postfix sample configuration files.
 # This parameter is obsolete as of Postfix 2.1.
 #
 sample_directory = /usr/share/doc/postfix-2.2.8/samples

 # readme_directory: The location of the Postfix README files.
 #
 readme_directory = /usr/share/doc/postfix-2.2.8/README_FILES

 
#Enable SMTP Auth ←  以下追記
 
smtpd_sasl_auth_enable = yes
 smtpd_sasl_local_domain = $myhostname
 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination


 
   
   
ドメインの追加
   
  上記設定ではドメインに“ xxxx.com ”を指定していますが、その他にもドメインを持っている場合はその他のドメインも追加します。

ここでの設定は“ www.xxxx.com ”と言うドメインを追加します。

最初に virtual ファイルを設定します。下記のように黄色の部分を追記して下さい。赤文字は説明です。青文字が入力文字です。

   
   
 
[root@linux]# vi /etc/postfix/virtual    ← 入力
 # VIRTUAL(5) VIRTUAL(5)
 #
 # NAME
 #        virtual - Postfix virtual alias table format
 #
 # SYNOPSIS
 #        postmap /etc/postfix/virtual
 #
 #        postmap -q "string" /etc/postfix/virtual
 #
 #        postmap -q - /etc/postfix/virtual <inputfile
 #
 # DESCRIPTION
 #        The optional virtual(5) alias table rewrites recipient
 #        addresses for all local, all virtual, and all remote mail
 #        destinations. This is unlike the aliases(5) table which
 #        is used only for local(8) delivery. Virtual aliasing is
 #        recursive, and is implemented by the Postfix cleanup(8)
 #        daemon before mail is queued.
 #
 #        The main applications of virtual aliasing are:
 #
 #        o      To redirect mail for one address to one or more
 #               addresses.
 #
 #        o      To implement virtual alias domains where all
 #               addresses are aliased to addresses in other
 #               domains.
 #
 #               Virtual alias domains are not to be confused with
 #               the virtual mailbox domains that are implemented
 #               with the Postfix virtual(8) mail delivery agent.
 #               With virtual mailbox domains, each recipient
 #               address can have its own mailbox.
 #
 #        Virtual aliasing is applied only to recipient envelope
 #        addresses, and does not affect message headers. Use
 #        canonical(5) mapping to rewrite header and envelope
 #        addresses in general.
 #
 #        Normally, the virtual(5) alias table is specified as a
 #        text file that serves as input to the postmap(1) command.
 #        The result, an indexed file in dbm or db format, is used
 #        for fast searching by the mail system. Execute the command
 #        "postmap /etc/postfix/virtual" in order to rebuild the
 #        indexed file after changing the text file.
 #
 #        When the table is provided via other means such as NIS,
 #        LDAP or SQL, the same lookups are done as for ordinary
 #        indexed files.
 #
 #        Alternatively, the table can be provided as a regular-
 #        expression map where patterns are given as regular expres-
 #        sions, or lookups can be directed to TCP-based server. In
 #        that case, the lookups are done in a slightly different
 #        way as described below under "REGULAR EXPRESSION TABLES"
 #        and "TCP-BASED TABLES".
 #
 # CASE FOLDING
 #        The search string is folded to lowercase before database
 #        lookup. As of Postfix 2.3, the search string is not case
 #        folded with database types such as regexp: or pcre: whose
 #        lookup fields can match both upper and lower case.
 #
 # TABLE FORMAT
 #        The input format for the postmap(1) command is as follows:
 #
 #        pattern result
 #               When pattern matches a mail address, replace it by
 #               the corresponding result.
 #
 #        blank lines and comments
 #               Empty lines and whitespace-only lines are ignored,
 #               as are lines whose first non-whitespace character
 #               is a `#'.
 #
 #        multi-line text
 #               A logical line starts with non-whitespace text. A
 #               line that starts with whitespace continues a logi-
 #               cal line.
 #
 # TABLE SEARCH ORDER
 #        With lookups from indexed files such as DB or DBM, or from
 #        networked tables such as NIS, LDAP or SQL, patterns are
 #        tried in the order as listed below:
 #
 #        user@domain address, address, ...
 #               Redirect mail for user@domain to address. This
 #               form has the highest precedence.
 #
 #        user address, address, ...
 #               Redirect mail for user@site to address when site is
 #               equal to $myorigin, when site is listed in $mydes-
 #               tination, or when it is listed in $inet_interfaces
 #               or $proxy_interfaces.
 #
 #               This functionality overlaps with functionality of
 #               the local aliases(5) database. The difference is
 #               that virtual(5) mapping can be applied to non-local
 #               addresses.
 #
 #        @domain address, address, ...
 #               Redirect mail for other users in domain to address.
 #               This form has the lowest precedence.
 #
 # RESULT ADDRESS REWRITING
 #        The lookup result is subject to address rewriting:
 #
 #        o      When the result has the form @otherdomain, the
 #               result becomes the same user in otherdomain. This
 #               works only for the first address in a multi-address
 #               lookup result.
 #
 #        o      When "append_at_myorigin=yes", append "@$myorigin"
 #               to addresses without "@domain".
 #
 #        o      When "append_dot_mydomain=yes", append ".$mydomain"
 #               to addresses without ".domain".
 #
 # ADDRESS EXTENSION
 #        When a mail address localpart contains the optional recip-
 #        ient delimiter (e.g., user+foo@domain), the lookup order
 #        becomes: user+foo@domain, user@domain, user+foo, user, and
 #        @domain.
 #
 #        The propagate_unmatched_extensions parameter controls
 #        whether an unmatched address extension (+foo) is propa-
 #        gated to the result of table lookup.
 #
 # VIRTUAL ALIAS DOMAINS
 #        Besides virtual aliases, the virtual alias table can also
 #        be used to implement virtual alias domains. With a virtual
 #        alias domain, all recipient addresses are aliased to
 #        addresses in other domains.
 #
 #        Virtual alias domains are not to be confused with the vir-
 #        tual mailbox domains that are implemented with the Postfix
 #        virtual(8) mail delivery agent. With virtual mailbox
 #        domains, each recipient address can have its own mailbox.
 #
 #        With a virtual alias domain, the virtual domain has its
 #        own user name space. Local (i.e. non-virtual) usernames
 #        are not visible in a virtual alias domain. In particular,
 #        local aliases(5) and local mailing lists are not visible
 #        as localname@virtual-alias.domain.
 #
 #        Support for a virtual alias domain looks like:
 #
 #        /etc/postfix/main.cf:
 #            virtual_alias_maps = hash:/etc/postfix/virtual
 #
 #            Note: some systems use dbm databases instead of hash.
 #            See the output from "postconf -m" for available data-
 #            base types.
 #
 #        /etc/postfix/virtual:
 #            virtual-alias.domain anything (right-hand content does not matter)
 #            postmaster@virtual-alias.domain postmaster
 #            user1@virtual-alias.domain address1
 #            user2@virtual-alias.domain address2, address3
 #
 #        The virtual-alias.domain anything entry is required for a
 #        virtual alias domain. Without this entry, mail is rejected
 #        with "relay access denied", or bounces with "mail loops
 #        back to myself".
 #
 #        Do not specify virtual alias domain names in the main.cf
 #        mydestination or relay_domains configuration parameters.
 #
 #        With a virtual alias domain, the Postfix SMTP server
 #        accepts mail for known-user@virtual-alias.domain, and
 #        rejects mail for unknown-user@virtual-alias.domain as
 #        undeliverable.
 #
 #        Instead of specifying the virtual alias domain name via
 #        the virtual_alias_maps table, you may also specify it via
 #        the main.cf virtual_alias_domains configuration parameter.
 #        This latter parameter uses the same syntax as the main.cf
 #        mydestination configuration parameter.
 #
 # REGULAR EXPRESSION TABLES
 #        This section describes how the table lookups change when
 #        the table is given in the form of regular expressions. For
 #        a description of regular expression lookup table syntax,
 #        see regexp_table(5) or pcre_table(5).
 #
 #        Each pattern is a regular expression that is applied to
 #        the entire address being looked up. Thus, user@domain mail
 #        addresses are not broken up into their user and @domain
 #        constituent parts, nor is user+foo broken up into user and
 #        foo.
 #
 #        Patterns are applied in the order as specified in the ta-
 #        ble, until a pattern is found that matches the search
 #        string.
 #
 #        Results are the same as with indexed file lookups, with
 #        the additional feature that parenthesized substrings from
 #        the pattern can be interpolated as $1, $2 and so on.
 #
 # TCP-BASED TABLES
 #        This section describes how the table lookups change when
 #        lookups are directed to a TCP-based server. For a descrip-
 #        tion of the TCP client/server lookup protocol, see tcp_ta-
 #        ble(5). This feature is not available up to and including
 #        Postfix version 2.3.
 #
 #        Each lookup operation uses the entire address once. Thus,
 #        user@domain mail addresses are not broken up into their
 #        user and @domain constituent parts, nor is user+foo broken
 #        up into user and foo.
 #
 #        Results are the same as with indexed file lookups.
 #
 # BUGS
 #        The table format does not understand quoting conventions.
 #
 # CONFIGURATION PARAMETERS
 #        The following main.cf parameters are especially relevant
 #        to this topic. See the Postfix main.cf file for syntax
 #        details and for default values. Use the "postfix reload"
 #        command after a configuration change.
 #
 #        virtual_alias_maps
 #               List of virtual aliasing tables.
 #
 #        virtual_alias_domains
 #               List of virtual alias domains. This uses the same
 #               syntax as the mydestination parameter.
 #
 #        propagate_unmatched_extensions
 #               A list of address rewriting or forwarding mecha-
 #               nisms that propagate an address extension from the
 #               original address to the result. Specify zero or
 #               more of canonical, virtual, alias, forward,
 #               include, or generic.
 #
 #        Other parameters of interest:
 #
 #        inet_interfaces
 #               The network interface addresses that this system
 #               receives mail on. You need to stop and start Post-
 #               fix when this parameter changes.
 #
 #        mydestination
 #               List of domains that this mail system considers
 #               local.
 #
 #        myorigin
 #               The domain that is appended to any address that
 #               does not have a domain.
 #
 #        owner_request_special
 #               Give special treatment to owner-xxx and xxx-request
 #               addresses.
 #
 #        proxy_interfaces
 #               Other interfaces that this machine receives mail on
 #               by way of a proxy agent or network address transla-
 #               tor.
 #
 # SEE ALSO
 #        cleanup(8), canonicalize and enqueue mail
 #        postmap(1), Postfix lookup table manager
 #        postconf(5), configuration parameters
 #        canonical(5), canonical address mapping
 #
 # README FILES
 #        Use "postconf readme_directory" or "postconf html_direc-
 #        tory" to locate this information.
 #        DATABASE_README, Postfix lookup table overview
 #        ADDRESS_REWRITING_README, address rewriting guide
 #        VIRTUAL_README, domain hosting guide
 #
 # LICENSE
 #        The Secure Mailer license must be distributed with this
 #        software.
 #
 # AUTHOR(S)
 #        Wietse Venema
 #        IBM T.J. Watson Research
 #        P.O. Box 704
 #        Yorktown Heights, NY 10598, USA
 #
 #                                                                        VIRTUAL(5)

 www.xxxx.com anything ← 追記
 @www.xxxx.com @xxxx.com
 ← 追記
 
   
  上記で行った設定を反映させます。下記のように入力します。
   
   
 
[root@linux]# postmap /etc/postfix/virtual    ← 入力
 
   
  続いて postfix の設定をします。下記のように黄色の部分を最後に追記して下さい。赤文字は説明です。青文字が入力文字です。
   
   
 
[root@linux]# vi /etc/postfix/main.cf    ← 入力
 
 # Global Postfix configuration file. This file lists only a subset
 # of all 300+ parameters. See the postconf(5) manual page for a
 # complete list.
 #
 # The general format of each line is: parameter = value. Lines
 # that begin with whitespace continue the previous line. A value can
 # contain references to other $names or ${name}s.
 #
 # NOTE - CHANGE NO MORE THAN 2-3 PARAMETERS AT A TIME, AND TEST IF
 # POSTFIX STILL WORKS AFTER EVERY CHANGE.
 
 # SOFT BOUNCE
 #
 # The soft_bounce parameter provides a limited safety net for
 # testing. When soft_bounce is enabled, mail will remain queued that
 # would otherwise bounce. This parameter disables locally-generated
 # bounces, and prevents the SMTP server from rejecting mail permanently
 # (by changing 5xx replies into 4xx replies). However, soft_bounce
 # is no cure for address rewriting mistakes or mail routing mistakes.
 #
 #soft_bounce = no
       ↓ 
       ↓  途中省略
       ↓ 
 # sample_directory: The location of the Postfix sample configuration files.
 # This parameter is obsolete as of Postfix 2.1.
 #
 sample_directory = /usr/share/doc/postfix-2.3.3/samples

 # readme_directory: The location of the Postfix README files.
 #
 readme_directory = /usr/share/doc/postfix-2.3.3/README_FILES

 #Enable SMTP Auth
 smtpd_sasl_auth_enable = yes
 smtpd_sasl_local_domain = $myhostname
 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

virtual_maps = hash:/etc/postfix/virtual ← 変更
 
   
  ドメインを追加した場合でもメールフォルダーはユーザー毎になります。したがって、 user@xxxx.com で受信したメールと user@www.xxxx.com で受信したメールは同じ user フォルダーに保存されます。
   
   
smtpdの設定
   
  次にsmtpdの設定ファイルを開きます。下記のように黄色の部分を 変更して下さい。赤文字は説明です。青文字が入力文字です。
   
   
 
[root@linux]# vi /usr/lib/sasl2/smtpd.conf    ← 入力
 
 
pwcheck_method: saslauthd
       ↓ 
 
pwcheck_method: auxprop ← 変更
 
   
   
hostnameの設定
   
   
 
[root@linux]# vi /etc/sysconfig/network    ← 入力
 
 NETWORKING=yes
 NETWORKING_IPV6=yes
 
HOSTNAME=localhost
       ↓ 
 
HOSTNAME = ****.xxxx.com ← ホスト名・ドメイン名の指定
 
   
   
hostsの設定
   
   
 
[root@linux]# vi /etc/hosts    ← 入力
 
 # Do not remove the following line, or various programs
 # that require network functionality will fail.
 
::1 localhost localhost.localdomain localhost
       ↓ 
 
::1 ****.xxxx.com localhost.localdomain localhost ← ホスト名・ドメイン名の指定
 
   
   
PCの再起動
   
  ここで設定を反映させりためPCを一回再起動させます。
   
   
メールボックスの自動作成
   
  ユーザー追加時に自動でメールボックスを作成できるようにします。下記のように入力します。
   
   
 
[root@linux]# mkdir -p /etc/skel/Maildir/new    ← 入力
 
[root@linux]# mkdir -p /etc/skel/Maildir/cur    ← 入力
 
[root@linux]# mkdir -p /etc/skel/Maildir/tmp    ← 入力
 
[root@linux]# chmod -R 700 /etc/skel/Maildir/    ← 入力
 
   
   
smtpdの起動
   
  smtpdの起動です。

下記のように入力して下さい。赤文字は説明です。青文字が入力文字です。

   
   
 
[root@linux]# /etc/rc.d/init.d/saslauthd start    ← 入力 (saslauthd の起動)
 saslauthd を起動中:                        [
OK ]
 
   
  続いてPCの再起動に smtpd を自動的に起動するようにします。下記のように入力します。青文字が入力文字です。
   
   
 [root@linux]#
chkconfig saslauthd on      ← chkconfig saslauthd on を入力(saslauthd の自動起動)
 
   
  自動起動設定の確認。下記のように入力し 、下記のように表示されればOKです。青文字が入力文字です。
   
   
 [root@linux]#
chkconfig --list saslauthd      ← chkconfig --list saslauthd を入力(saslauthd の自動起動確認)
 saslauthd       0:off   1:off   2:on   3:on   4:on   5:on   6:off
 
   
  再起動は下記のように入力します。青文字が入力文字です。
   
   
 [root@linux]#
/etc/rc.d/init.d/saslauthd restart
 
   
   
postfixの起動
   
  fedora では通常 sendmail と言うSMTPサーバーが起動していますのでこせを停止させpostfixの起動させます

まず最初に sendmail の停止です。下記のように入力して下さい。赤文字は説明です。青文字が入力文字です。

   
   
 
[root@linux]# chkconfig sendmail off    ← 入力 (sendmail の停止)
 
[root@linux]# chkconfig --list sendmail    ← 入力(sendmail の停止の確認)
 
sendmail           0:off 1:off 2:off 3:off 4:off 5:off 6:off    ← 全てが off になっていることを確認
 
   
  デフォルトのSMTPサーバーの変更をします。下記のように入力して下さい。赤文字は説明です。青文字が入力文字です。
   
   
 
[root@linux]# alternatives --config mta    ← 入力 
 
 2 プログラムがあり 'mta' を提供します。

    選択           コマンド
 -----------------------------------------------
 *+  1             /usr/sbin/sendmail.sendmail
     2             /usr/sbin/sendmail.postfix

 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
2    ← 2 を入力後 Enter を押す
 
   
  変更の確認です。再度、上と同じコマンドを実行します。
   
   
 
[root@linux]# alternatives --config mta    ← 入力 
 
 2 プログラムがあり 'mta' を提供します。

    選択           コマンド
 -----------------------------------------------
 *   1             /usr/sbin/sendmail.sendmail
  +  2             /usr/sbin/sendmail.postfix

 Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:
    ← Enter を押す
 
   
  postfixの起動です。

下記のように入力して下さい。赤文字は説明です。青文字が入力文字です。

   
   
 
[root@linux]# /etc/rc.d/init.d/postfix start    ← 入力 (postfix の起動)
 postfix を起動中:                        [
OK ]
 
   
  続いてPCの再起動に postfix を自動的に起動するようにします。下記のように入力します。青文字が入力文字です。
   
   
 [root@linux]#
chkconfig postfix on      ← chkconfig postfix on を入力(postfix の自動起動)
 
   
  自動起動設定の確認。下記のように入力し 、下記のように表示されればOKです。青文字が入力文字です。
   
   
 [root@linux]#
chkconfig --list postfix      ← chkconfig --list postfix を入力(postfix の自動起動確認)
 
postfix       0:off   1:off   2:on   3:on   4:on   5:on   6:off
 
   
  再起動は下記のように入力します。青文字が入力文字です。
   
   
 [root@linux]#
/etc/rc.d/init.d/postfix restart
 
   
   

戻る