2017-02-16 8 views
1

ユーザー作成アカウントを作成した後、ユーザーの電子メールをメールサーバーに送るためのリンクを表示することを計画しています。 例: user1に[email protected]がある場合、リンクはgmail.comまたはmail.google.comを指します。 user2が[email protected]の場合、リンクはmail.yahoo.comを指します。PHPで電子メールアドレスからメールのサブドメインやURLをプログラムで見つけることは可能ですか?

PHPで私は

$domain = explode("@", '[email protected]')[1]; 
$domain2 = explode("@", '[email protected]')[1]; 
$mailUrl = $domain; //will work 
$mailUrl2 = $domain; //will not work 
$mailUrl = 'mail.'.$domain; //will not work 
$mailUrl2 = 'mail.'.$domain; // will work 

は、だから私は手動でsubmain構造を予測することはできません行うことができます。私はgmail.com、mail.google.com、mail.yahoo.com、hotmail.comなどの電子メールアドレスの適切なサブドメインを返してくれるPHP関数またはLaravel 4パッケージがあるかどうか疑問に思っていた。

+2

はここでスニペットです。実際には、これをやってはいけないと言いたいと思います。ここで何をしようとしていますか?技術的には、これは[MXレコード](https://en.wikipedia.org/wiki/MX_record)とDNSを介して行われますが、これは簡単ではありません。 – tadman

+0

あなたが何を求めているか分かりません。あなたは '@ yahoo.com'を' mail.yahoo.com'に翻訳するために使用できるウェブメールドメインのリストがあるかどうか尋ねていますか? – Pitchinnate

+0

私は自分の国の一部のユーザー(登録後に自分のeamilを確認する必要があるとは思われないようです)を手伝って、電子メールアカウントに直接アクセスし、新しく作成したアカウントを確認しようとしています。 –

答えて

0

これはPHP関数getmxrrを使って簡単に実現できます。あなたが正規表現でこれを行うことはできません

<?php 
    // Where the mx records will be added 
    $records = []; 

    // Calling, change gmail.com to whatever you need 
    getmxrr('gmail.com', $records); 

    // dump the array's contents 
    var_dump($records); 
?> 
+1

これはウェブメールのアドレス、MXレコードだけを提供するものではありません。どのように役立ちますか? – Andy

+0

著者は "自分の電子メールのメールサーバー"と言いました。私は彼が実際のmxレコードを意味しましたが。 –

+0

努力をいただきありがとうございます。少なくとも私はMXレコードの機能を学びました。しかし、hotmail.comの場合はmx4.hotmail.com、gmail.comの場合はgmail-smtp-in.l.google.comのような複数のサブを提供します。いずれもあなたをgmail.comにリダイレクトしません。それ以外の機能がない限り、それは役に立たない。 –

関連する問題