dポイントプレゼントキャンペーン実施中!

ご存知の方がいましたら、教えて下さい。

HPとメールが利用可能なホスティングを活用しています。
環境は以下となります。
(1)HPはホスティング
(2)メールは自社環境

実施したいこと
HPから同じドメインの自社メールサーバーへメールを送信

HP(www.xxxxx.co.jp)からaaa@xxxxx.co.jpへメールを送ると、同一ドメインに対するメールは、レンタルサーバー内にあるメールへの送信となり、外部に送信できません。

今は以下のように記述しています
$mailto = 'aaa@xxxxx.co.jp' ;

メールサーバーを指定してメール送信する記述方法などがありましたら、アドバイスをお願い致します。

A 回答 (2件)

SMTPサーバーを外部にする以外の解決方法もあるのでコメントしました。


ただし、ホスティングの環境に依存してしまうため、
場合によっては有効な手段ではないかもしれません。

1つの解決方法ですが、DNSの設定を入れることです。ホスティング環境の名前解決で使用しているネームサーバー(レゾルバ)のmxレコードの設定で自社環境のIPを指定するということです。
ただしこれはホスティングの環境に依存してしまいますので有効な解決策かどうかは試してみないとわかりません。
(WEBの設定とメールの設定が連動しているとできないと思われます)

2つめの方法としては転送することで回避することができるかもしれません。(但し、これも環境に依存してしまいます)
ホスティング環境のメールアカウントに転送設定をかけて、サブドメインに転送するようにします。(aaa@jisha.xxxx.co.jp)
サブドメインのAレコードもMXレコードも自社側のサーバーをしておきます。
自社サーバー側でサブドメインでもメールを受信できるようにしておけばメールの受信ができると思います。

参考になりましたら。
    • good
    • 0
この回答へのお礼

>ohnosatoruさん
ホスティングサービスで、CGIを稼働させるサーバーのDNSで、
自社サーバ向けにすることができ、perlの記述を変更する必要がなく、解決することができました!

ちなみに、ホスティングサービスはNTTcomのメール&ウェブProです。

アドバイスありがとうございました。

お礼日時:2009/07/02 17:06

以下のようにSMTPサーバのIPアドレスを直接指定すればできるかもしれま


せん。質問には直接関係ないですが、社外のメールクライアントからの
SMTP送信要求は、セキュリティではじかれませんか?
----
#!/usr/bin/perl
use warnings;
use strict;
use utf8;

use Encode;
use Net::SMTP; # Require Authen::SASL Module
use Net::SMTP::SSL;
use MIME::Entity;

my $mail_to = 'xxx@xxx';
my $mail_from = 'yyy@yyy';
my $mail_subject = '件名';
my $mail_body = << 'END_MAILBODY';
本文1
本文2
END_MAILBODY

$mail_subject = encode( 'MIME-Header-ISO_2022_JP', $mail_subject );
$mail_to = encode( 'MIME-Header-ISO_2022_JP', $mail_to );
$mail_from = encode( 'MIME-Header-ISO_2022_JP', $mail_from );
$mail_body = encode( 'ISO_2022_JP', $mail_body );

my $mime = MIME::Entity->build(
From => $mail_from,
To => $mail_to,
Subject => $mail_subject,
Type => "text/plain; charset=ISO-2022-JP",
Data => $mail_body
) or die "mime build error : $!";

my $smtp_server = 'STMP サーバの IP アドレス;
my $smtp = Net::SMTP->new( $smtp_server, Debug => 1 )
|| die "smtp conn error : $!";

# SMTP 認証ありのとき
my $smtp_acc = 'xxxxx;
my $smtp_pwd = 'yyyyy;
$smtp->auth( $smtp_acc, $smtp_pwd ) or die "smtp auth error: $!";

$smtp->mail($mail_from);
$smtp->to($mail_to);
$smtp->data();
$smtp->datasend( $mime->stringify ) or die "data send error : $!";
$smtp->dataend() or die "data end error : $!";
$smtp->quit;
    • good
    • 0
この回答へのお礼

>_--_1l1_1_さん

早速のご回答ありがとうございます。
perl記述に不慣れなので、教えて頂いた情報を元に格闘してみます。

>質問には直接関係ないですが、社外のメールクライアントからの
SMTP送信要求は、セキュリティではじかれませんか?
これも確認してみます。

ありがとうございました。

お礼日時:2009/06/30 17:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!