web-dev-qa-db-ja.com

Ubuntuサーバーから電子メールを送信する方法は?

私がやるべきことは、Ubuntuからメールを送ることです。私が見つけた最も簡単な方法は、Thunderbirdを使用して、私の実際の電子メールアドレス([email protected])をThunderbirdアカウントにリンクすることです。この方法で、電子メールを正常に受信し、完全な履歴をダウンロードできます。ただし、メールを送信できません。

私がやりたいのは、Ubuntuから直接電子メールを送信し、user1 @ localhostまたはそれに類似したものとして表示することです。

それも可能ですか?これについてさまざまなトピックを読んだ後、リレーアドレスを使用することが唯一の方法のようです。

そこに書かれているのと同じ方法でPostfixもインストールしました: メールサーバーのセットアップ方法 インストールタイプを選択するように求められたとき、インターネットサイトを選択しました。

私が持っていたオプション:

  • 設定なし。
  • インターネットサイト;
  • スマートホストを使用したインターネット。
  • ステライトシステム;
  • ローカルのみ。

システムメール名の入力を求められたら、自分が所有するWebサイトsome_website.comを入力しました。私はまだポストフィックスでメールを送信する方法を理解していませんが、リレーサーバーが再び使用されると思います。

Ubuntu 11.10を仮想マシンとして実行しています。

この質問が理にかなっていることを願っています。

12
afaf12

それはあなたの仕事であるかのように、「することを想定して」と言ったので、それは完全に意味をなしません。仮想マシン内に実際のメールサーバーを設定していますか?私は、仮想サーバーにメールシステムが必要であるが、仮想サーバーはフルタイムの「本物の」SMTPサーバーではないことを意味する手掛かりを取ります。 (そうでなければ、あなたはすでに知っているでしょう、私は乱暴に推測します。)

それを念頭に置いて、「スマートホストを使用したインターネット」オプションが必要になります。本質的に、大きな理由は、世界中の適切に構成されたSMTPサーバーがすべてスパム対策を使用していることです。また、これらの対策の1つは、既知の動的アドレスプールからのすべてのSMTP接続を拒否することです(スパマーが使用するのが大好きです)。したがって、送信メールには別のSMTPサーバーを使用する必要があります。

このためにPostfixを使いたければ、それは簡単です。Postfixをスマートホストとして設定することに関するUbuntuの記事を検索するだけです。ただし、あるシステムと別のシステムとの間に特別な親和性がない場合は、このために設計されたパッケージがあります:ssmtp。したがって、試してみたい場合は、ssmtpをインストールしてください。

注意:以下のアクションはpostfixまたはsendmailを削除します。

Sudo apt-get install ssmtp

次に、ssmtp構成ファイルを編集します。

Sudo -e /etc/ssmtp/ssmtp.conf

使用可能なSMTPサーバーの詳細がわからないため、GMailの例を示します。

[email protected]
Mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
AuthUser=your_gmail_username # [email protected]
AuthPass=your_gmail_password
FromLineOverride=Yes
UseTLS=Yes

これで、システムは希望する方法でメールを送信します。発信SMTPサーバーのGUIアプリケーションで、localhostをメールサーバーとして使用できます。しかし、CLIはどうでしょうか? mailソフトウェアを使用します。

Sudo apt-get install heirloom-mailx

これで、コマンドラインから次のようなメールを使用することもできます。

mail < filename.ascii [email protected] -s "My File"

または、mailを使用して入力したメッセージ(mail [email protected])を作成する場合は、空白行に1つのピリオドを付けてメールメッセージを終了します。より良いCLIメールクライアントはmuttまたはpineです。

これは必要な角度ですか?もしそうなら、それは成功しましたか?

13
user8290

Thunderbirdを使用している場合は、SMTP用のリモートサーバーを構成できます。独自のメールサーバーをお持ちでない限り、これは通常、ISPのリレーサーバーまたはメールプロバイダーのSMTPサーバーになります。 GmailをSMTPサーバーとして正常に使用しましたが、認証が必要です。 (他のホストの一部も同様です。)

コマンドtelnet mail.example.com 25を使用してサーバーへのアクセスをテストします。動作している場合は、サーバーからバナーメッセージが表示されます。

Thunderbirdをサーバーと連携させたら、EximまたはPostfixを同じサーバーのサテライトサーバーとして構成できます。他のアプリケーションからシステムからメールを送信する必要がない場合は、これをスキップできます。送信サーバーの送信元アドレスが電子メールを受け入れることができることに注意してください。

編集:iptablesが有効になっておらず、発信トラフィックをブロックしていないことを確認してください。その場合、目的のポートで発信トラフィックを有効にします。 tcptraceroute mail.example.com 25などのコマンドを使用して、ブロックされている場所を確認できます。 tcptracerouteは、使用する前にインストールする必要があります。

1
BillThor

私はこれを浮浪者の箱でテストし、完璧に動作しました。コマンドを実行して次のものをインストールしました

apt-get php-pearのインストール

ナシのインストールメール

p_install Net_SMTP

pear install Auth_SASL

pear install mail_mime

その後、次のコマンドを実行して後置をインストール

apt-get install postfix

インストール中に選択-

Localhostでこれを試みるため、サーバーの代わりにインターネットサイトとlocalhost

この後、次のコマンドを実行します

Sudo vim /etc/ssmtp/ssmtp.conf

ファイルを変更するには

これをssmtp.confファイルに変更します

FromLineOverride = YES

[email protected]

AuthPass = yourpasss

最も重要なのは、安全性の低いアプリからメールにアクセスできるようにすることです。

https://www.google.com/settings/security/lesssecureapps

そして、PHPメール機能を使用するか、ターミナルで次のコマンドを入力して、ターミナル自体からメールを送信できます

$ ssmtp [email protected]

From:[email protected]

宛先:[email protected]

件名:件名

こんにちは、これは私の最初のssmtpメールです!.

ctrl + Dを押すと、ssmtpがメールを送信します

あなたのマシンからSMTPが動作しているかどうかを確認することもできます

ping smtp.gmail.com

-このコマンドからの出力は次のようなものです

sc-in-f108.1e100.net(74.125.68.108)からの64バイト:icmp_seq = 1 ttl = 63 time = 68.4 ms

telnet smtp.gmail.com 587

-出力はこのようなものでなければなりません

74.125.68.108を試行しています...

Gmail-smtp-msa.l.google.comに接続しました。

220 smtp.gmail.com ESMTP l14sm12513264pfb.73-gsmtp

0
Gopal Sharma