Windows10+XAMPP+Merburyでメールを送信する方法

August 18,2020 11:55 PM
Category:[Windows]
Tag:[Mercury, Windows10, XAMPP]
Permalink

Windows10+XAMPP+Mercuryでメールを送信する方法を紹介します。

1.はじめに

Windows10+XAMPPでメールを送信する必要が生じました。

調べたところ、XAMPPにバンドルされているMercuryというメールソフトを設定すれば送信可能になるようです。

ただ現在、ほとんどのISPは、「OP25B(Outbound port 25 Blocking)」というスパムメール対策のため、ポート25番を利用したメールを遮断しています。

そこでMercuryは、PC内部からの送信メールを、ISPのメール送信サーバにめがけて送信することで、外部へのメール送信を実現しているようです。

ということで、Windows10+XAMPP+Mercuryでメールを送信する方法を紹介します。

2.Windows10+XAMPP+Mercuryでメールを送信する

XAMPPを起動後、Mercuryの「Start」をクリック。

(クリックで拡大、以下同様)

セキュリティ警告が表示されるので「アクセスを許可する」をクリック。

Mercuryの「Admin」をクリック。

「Configuration」→「Protocol modules...」をクリック。

「MercuryS SMTP server」と「MercuryC SMTP relaying client」の2つをチェックし、他のチェックを外して「OK」をクリック。

「Configuration」→「MercuryS SMTP Server」をクリック。

「Connection control」タブの「Do not permit SMTP relaying of non-local mail」のチェックを外して「OK」をクリック。

これで設定画面をすべて閉じます。Mercuryが停止するので、Mercuryをもう一度起動して「Admin」をクリック。

「Configuration」から「MercuryC SMTP Client」をクリック。

「SMTP "Smart" Host details」に中継する送信メールサーバの情報を設定します。ここでは私の利用しているSo-netの送信メールサーバの情報を設定します。

Smart host name:ISPの送信メールサーバを(ここでは"mail.so-net.ne.jp")設定
Connection port/type:"587"および「SSL encryption via STARTTLS commanmd」を設定

また、「Credentials for SMTP Authentication if required」に中継する送信メールサーバの認証情報を設定します。

Login username:ユーザー名
Password:パスワード

設定完了後、Mercuryが停止するので、Startをクリックして再度起動します。これで今までの設定が反映された状態でMercuryが起動します。

最後に、メールを送信するアプリケーションにMercuryの送信メールサーバ情報を設定します。PHPを利用する場合は、php.iniに次の内容を設定します。

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25
 
; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = (送信元メールアドレス)

私はMovable Typeから送信するため、mt-config.cgiに下記の設定を追加します。

MailTransfer smtp
SMTPServer localhost
SMTPPort 25

これでPHPアプリケーションやMovable Typeからメールを送信し、送信先のメールアドレスに届いていればOKです。

4.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]

さくらのVPSに送信メールサーバを設定する方法

August 11,2020 11:55 PM
Category:[Linux]
Tag:[Linux, SMTP]
Permalink

さくらのVPSに送信メールサーバを設定する方法を紹介します。

1.はじめに

VPSにインストールしたMovable Typeからメールを送信する必要が生じました。

が、契約しているVPSにはメールに関する設定を何も行っていません。

色々調べたところ、送信メールサーバにはPostfixが簡単らしいので、これを使うことにしました。

sendmailは色々大変らしいです。

ということで、さくらのVPSに送信メールサーバを設定する方法を紹介します。

2.Postfixのインストール

yumコマンドでPostfixをインストールします。

# yum -y install postfix

3.main.cfの編集

Postfixの設定ファイル、main.cfをvimで編集します。

# vim /etc/postfix/main.cf
# 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 = virtual.domain.tld
myhostname = mail.hogehoge.com ←追加、ドメイン名は何でも動くみたい
 
# 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 = hogehoge.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 ← メール送信時、送信元メールアドレスの@以降にドメイン名を付加する設定
 
# 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 = all ← localhostをallに変更(外部からのメール受信を許可)
 
# 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, $mydomain ← 自ドメイン宛メールを受信できるよう、行末に$mydomainを追加
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
#       mail.$mydomain, www.$mydomain, ftp.$mydomain
 
# 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/ ← メール格納形式をMaildir形式にする
 
# 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)
smtpd_banner = $myhostname ESMTP unknown ← メールサーバーソフト名の隠蔽化

また、SMTP認証設定と受信メールサイズ制限のため、以下を最終行へ追加します。

smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    reject_unauth_destination
message_size_limit = 10485760

4.master.cfの編集

Postfixの設定ファイル、master.cfをvimで編集します。

# vim /etc/postfix/master.cf
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       n       -       -       smtpd
#submission inet n       -       n       -       -       smtpd
submission inet n       -       n       -       -       smtpd ← SUBMISSIONポート有効化
#  -o smtpd_tls_security_level=encrypt
#  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_auth_enable=yes ← SUBMISSIONポートでSMTP認証有効化

5.SMTP認証設定

SMTP認証にシステムのユーザー名、パスワードを使用する場合の方法を示します。

# yum -y install cyrus-sasl

CentOS 6.xの場合

# /etc/rc.d/init.d/saslauthd start
# chkconfig saslauthd on ← 自動起動設定の場合はこちら

CentOS 7.xの場合

# systemctl start saslauthd
# systemctl enable saslauthd ← 自動起動設定の場合はこちら

6.存在しないユーザー宛メールの破棄設定

# vim /etc/postfix/main.cf

ファイルの最後に下記を追加(存在しないユーザー宛メールをunknown_userへ配送)

local_recipient_maps =
luser_relay = unknown_user@localhost

unknown_user宛メールを破棄します。

# echo unknown_user: /dev/null >> /etc/aliases

/etc/aliasesの変更を反映します。

# newaliases

これで/etc/aliasesに下記の1行が追加されます。

unknown_user: /dev/null

7.テストメール送信

さくらVPSのサーバーから外部の任意のメールアドレスにメールを送信します。

# smtp-source -v -f "" -t "hoge@xxx.so-net.ne.jp" 127.0.0.1:25

これで下記のように表示されて、メールが届いていればOKです。

smtp-source: name_mask: all
smtp-source: vstream_tweak_tcp: TCP_MAXSEG 16384
smtp-source: <<< 220 mail.hoge.com ESMTP unknown
smtp-source: HELO wwwXXXXXXX.sakura.ne.jp
smtp-source: <<< 250 mail.hoge.com
smtp-source: MAIL FROM:<>
smtp-source: <<< 250 2.1.0 Ok
smtp-source: RCPT TO:<hoge@xxx.so-net.ne.jp>
smtp-source: <<< 250 2.1.5 Ok
smtp-source: DATA
smtp-source: <<< 354 End data with <CR><LF>.<CR><LF>
smtp-source: .
smtp-source: <<< 250 2.0.0 Ok: queued as 661F541A90
smtp-source: QUIT
smtp-source: <<< 221 2.0.0 Bye

届いたメールの本文は次のようになっていました。差出人や件名は空でした。

La de da de da 1.
La de da de da 2.
La de da de da 3.
La de da de da 4.

8.Movable Typeの設定

これで完璧かどうかわかりませんが、外部にメールを送信できました。

なお、Movable Typeにはインストール時に「SMTPサーバー」を設定します。

あとから設定するには、mt-config.cgiに下記の3行を設定します。

MailTransfer smtp
SMTPServer localhost
SMTPPort 25

9.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]

VirtualBoxのCentOSにMySQLインストール・起動とrootパスワード設定

July 27,2020 11:55 PM
Category:[VirtualBOX]
Tag:[CentOS, MySQL, VirtualBOX, Windows]
Permalink

VirtualBoxのCentOSにMySQLインストールし、起動してrootのパスワード設定までの手順です。

かなり雑な手順かもしれませんのであしからず。

CentOSのバージョンは8.1.1911_x86_64で、MySQLは8.0.17です。

1.mysqlおよびmysql-serverのインストール

yumでインストールします。mysql-serverをインストールしないと2項のサービス起動でmysqldが見つからないので気を付けましょう。

[root@localhost ~]# yum install mysql
 :
インストール済み:
  mysql-8.0.17-3.module_el8.0.0+181+899d6349.x86_64               mariadb-connector-c-config-3.0.7-1.el8.noarch
  mysql-common-8.0.17-3.module_el8.0.0+181+899d6349.x86_64
 
完了しました!
[root@localhost ~]# yum install mysql-server
 :
インストール済み:
  mysql-server-8.0.17-3.module_el8.0.0+181+899d6349.x86_64
  mecab-0.996-1.module_el8.0.0+41+ca30bab6.9.x86_64
  mysql-errmsg-8.0.17-3.module_el8.0.0+181+899d6349.x86_64
  protobuf-lite-3.5.0-7.el8.x86_64
 
完了しました!

2.mysqld起動

mysqldを起動します。

[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl status mysqld
● mysqld.service - MySQL 8.0 database server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-04-13 21:18:42 JST; 21min ago
  Process: 6509 ExecStartPost=/usr/libexec/mysql-check-upgrade (code=exited, status=0/SUCCESS)
  Process: 6373 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
  Process: 6349 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
 Main PID: 6466 (mysqld)
   Status: "Server is operational"
    Tasks: 40 (limit: 11492)
   Memory: 406.0M
   CGroup: /system.slice/mysqld.service
           mq6466 /usr/libexec/mysqld --basedir=/usr
 
 4月 13 21:18:30 localhost.localdomain systemd[1]: Starting MySQL 8.0 database server...
 4月 13 21:18:31 localhost.localdomain mysql-prepare-db-dir[6373]: Initializing MySQL database
 4月 13 21:18:42 localhost.localdomain systemd[1]: Started MySQL 8.0 database server.

3.rootパスワード設定

ノンパスワードでmysqlを実行し、rootユーザーにパスワードを設定します。"USE mysql"は不要かもしれません。

[root@localhost ~]# mysql -u root
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> ALTER USER 'root'@'localhost' identified BY '任意のパスワード';
Query OK, 0 rows affected (0.00 sec)
 
mysql> quit
Bye

ちなみに、下記の方法ではエラーになります。

mysql> update mysql.user set password=password('任意のパスワード') where user='root';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('任意のパスワード') where user='root'' at line 1

理由は、password() 関数がMySQL 5.67までで廃止されているからのようです。

4.参考サイト

参考サイトは下記です。ありがとうございました。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages