質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

697閲覧

sendmailである形式のメールアドレスが送信されない

u-sukesan

総合スコア156

Sendmail

Sendmailは、インターネットで電子メールを送受信するサーバソフトウェア(MTA)です。ユーザーが送信したメールを受け、他メールサーバへ引き渡しバケツリレー式に配送したり、届いたメールをユーザーが受け取るまでの間保管するといった働きをします。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/07/12 02:34

受信したメールを下記PHPに転送し
sendmailにて任意の複数のメールアドレスに転送しています。
しかし下記の形式のメールアドレスだけ転送されません。

789@12345

何か理由があるのでしょうか?
またやり方があるのでしょうか

$input = file_get_contents("php://stdin"); // 標準入力 //転送先 $dest=array('123@hoge.com','456@hoge.jp','789@12345'); $sendmail = popen("/usr/sbin/sendmail ".implode(" ",$dest), "w"); fwrite($sendmail, $input); fclose($sendmail);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

現状の書き方(sendmeil)ではRFC準拠に違反したメールアドレスへの送信は難しいでしょうか?

sendmailというのが、Postfixとかでなく本物のsendmailであれば、
sendmail.cfを自分で手で修正すれば可能だと思います。険しい道ですが。
Postfixなら、アドレスの書き換えの設定をすれば、届けたい先のアドレスに書き換える事は可能なはず。

ただ、789@12345って、RFC違反じゃないと思いますけど、どんなエラーが出ていますか?
RFC5322を見る限り、数字で始まっても良いし、ドメインが1レベルでも良いです。
アドレス解決出来ないというオチじゃないでしょうね。

投稿2017/07/12 05:07

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u-sukesan

2017/07/13 01:40

ありがとうございます。 下記でも書きましたがエラーは拾えていません。 https://teratail.com/questions/83441 この機能としては 1つのメールアドレスにメールを送信すると複数のブログに転送され、ブログ側では受け取ったメールを記事として反映します。また受け取ったメールの送信元メールアドレスで投稿者としてDBから投稿者名を判断します。 しかし対象ドメインだけが必ず送信先ブログに反映されていないため、質問しました。 まずは、「メールは送信はされ、受け取り側の問題」なのか、「こちらの送信エラー」なのかわかるといいのですが
u-sukesan

2017/07/13 01:52

ちなみにメールサーバーはPostfixでした
u-sukesan

2017/07/13 03:24

すいません 「アドレス解決出来ないというオチ」 というのは、具体的にどういうことでしょうか
otn

2017/07/13 11:57 編集

> 「アドレス解決出来ないというオチ」 12345というのはピリオドを含まない1レベルであることから、インターネット上のドメイン名では無く、ローカルなホスト名だと思いますが、ローカルなDNSなり、hostsファイルなりで、IPアドレスに変換できるのか?という意味です。
otn

2017/07/13 11:55

> まずは、「メールは送信はされ、受け取り側の問題」なのか、「こちらの送信エラー」なのかわかるといいのですが Postfixのログに何も残っていないというのはおかしいです。 手動でメールを送ったときにはログに残りますか?残らないのなら、違うファイルを見ているのでは? あと、送信できていないのなら、送信元ユーザーにエラーメールが返るはず。返ってないのなら送れているはず。
u-sukesan

2017/07/14 01:30

サーバーがエックスサーバーなのですがmaillogを確認したところ 対象ドメインがHost not foundとなっており 789@12345 の後にエックスサーバーのhoge.xserver.jpというのが勝手につけられているようです <789@12345.hoge.xserver.jp>: Host or domain name not found. Name service error for name=12345.hoge.xserver.jp type=A: Host not found つまり「@12345」がローカルと判断され、hoge.xserver.jpと勝手に追記されて送信された→結果hostはありませんと言われているのでしょうか こういったドメインの場合はどの様に対応するのが良いのでしょうか?
TaichiYanagiya

2017/07/14 05:38

main.cf の append_dot_mydomain = yes が効いているのだと思います。 append_dot_mydomain = no に設定すれば ".hoge.xserver.jp" は付かなくなると思います。 ところで、"12345" の名前解決(MXレコードまたは Aレコード)はできるのですか?
u-sukesan

2017/07/14 08:12

TaichiYanagiya様 ありがとうございます。そういうことなんですね >>ところで、"12345" の名前解決(MXレコードまたは Aレコード)はできるのですか? こちらは一度調べて見ますm(_ _)m
guest

0

メールアドレスとして認識されていないので送信されないのでしょう。
「RFC準拠 メールアドレス」でググるのをおすすめします。

投稿2017/07/12 02:41

zohnam

総合スコア1441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

u-sukesan

2017/07/12 02:55

そういうことなんですね。 現状の書き方(sendmeil)ではRFC準拠に違反したメールアドレスへの送信は難しいでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問