こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

さくらインターネット sendmail

恐れ入ります。
さくらインターネットでperlを使い、HTML上からsendmail送信をしているのですが、
送信元のFromの内容が、私のドメイン xxxx@xxxx.xx で記述してもwww234.sakura.ne.jpのようにさくらインターネットのドメインが付いてしまいます。
どのようにしたら良いのかがわかりません。
ご教授頂けたらと思います。

宜しくお願いします。

投稿日時 - 2018-03-31 10:09:23

QNo.9483628

困ってます

質問者が選んだベストアンサー

No4のお礼というか補足、確認しました。

なるほど。
Fromアドレスをソース内で
$from = "xxx@xxx.com";
で決め打ちされてういますが、
これをダブルクォートで囲んでいるので、これだと
@xxxを配列表記と認識して、実際は@xxxという配列がないので
$from = "xxx.com";
を代入しているのと同等になります。
それで、sendmailが、自ホストのドメインを自動で補完しているのでしょう。

なので、ここをシングルクォートにして
$from = 'xxx@xxx.com';
で、解決すると思われます。
$to もソース内に決め打ちにするなら同じくです。

投稿日時 - 2018-04-01 17:54:39

お礼

有難うございます。シングルクォートで囲んだら無事にFromに指定アドレスが入りました。
大変助かりました。ありがとうございます。

投稿日時 - 2018-04-02 18:22:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

> -fオプションをつけたのですが、やはり現象は変わりません。。。

おかしいですね。

具体的なソースコードを教えて下さい。
たとえばsystemコールしているところは、
popen("| /usr/lib/sendmail -f 送信元アドレス 送信先アドレス")
 もしくは
popen(" | /usr/lib/sendmail -t -f 送信元アドレス")
※-t 指定で 送信先アドレスはヘッダ内のTo:やCc:の記述内容を採用

ですか?
それともMail::Sendmailを使われてます?

投稿日時 - 2018-04-01 08:37:52

お礼

送信しているのは以下の記述で行っています。

宜しくお願いします。

$sendmail = '/usr/sbin/sendmail';

$to = "yyy.yyy.com";
$from = "xxx@xxx.com";

if (! open(MAIL, "| $sendmail -t -f $from"))
{
print "\n";
print "メールの送信に失敗しました。";

exit;
}

$from =~ s/\r|\n//g;
$to =~ s/\r|\n//g;
$subject =~ s/\r|\n//g;


$mailtext = << "EOM";
From: <$from>
To: <$to>
Subject: remind
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="EUC-JP"

メール本文

print MAIL $mailtext;

以上になります。

投稿日時 - 2018-04-01 11:15:17

ANo.3

>>現在さくらインターネットでドメインも取得しています。

さくらでドメインを取得するだけでは、サーバのドメインは取得したものになりません。
さくらでドメインを取得して、そのドメインをロリポップで契約しているサーバ用に使うなんてこともあるわけですからね。
契約したさくらのサーバのマシン名を取得したドメインに適用する作業を行っていますか?

投稿日時 - 2018-04-01 05:53:20

お礼

ありがとうございます。ドメインは反映されています。
HPも閲覧できますし、通常のメール送信は可能です。
perl内のsendmailがうまく行かない感じです。

投稿日時 - 2018-04-01 07:12:16

ANo.2

さくらインターネットでの環境でどうなのかは分かりませんが
ヘッダー内のFrom:で送信元アドレスを指定しているだけで
sendmail の -f オプション で 送信元アドレスを指定していないと
そういう状況になりがちです。

投稿日時 - 2018-03-31 21:57:04

お礼

-fオプションをつけたのですが、やはり現象は変わりません。。。

投稿日時 - 2018-04-01 07:13:10

ANo.1

perlからメール送信したことありませんが、もしかしたら、さくらサーバのドメインが使われているのかも?
使われているマシンのドメインがご自身のもの(xxx@xxxx.xxの@より右のxxxx.xx)に設定してみたらどうでしょう?

投稿日時 - 2018-03-31 10:29:22

お礼

ありがとうございます。現在さくらインターネットでドメインも取得しています。サーバー領域もさくらインターネットです。

取得したドメインがFromに入らないのです。

投稿日時 - 2018-03-31 14:36:18

あなたにオススメの質問