1

SMTP サーバーをセットアップする次のコードがあります。

ini_set("send_from", "test@gmail.com");
ini_set("SMTP", "smtp.gmail.com");

そして、私はこの方法で簡単なメールを作成します:

mail("test@yahoo.com", "A subject", "My message for you", "From: TEST");

このコードを実行すると、Yahooにメールを送信できません (例: some.email@yahoo.com )。しかし、最初の引数として任意のGmailメール アドレスを使用すると、機能します。

どうしたの ?

4

2 に答える 2

1

認証されたユーザーとしてメールを送信するには、 SPFDKIMなどのメール認証方法を使用する必要があります。

また、ドメインが IP アドレスを指す必要があり、IP アドレスが同じドメインを指す必要があることを確認する必要があります。これをリバース DNSと呼びます

メールがスパム フォルダに入るのを防ぐその他の優れた方法は次のとおりです。

  1. 登録解除リンクがあることを確認してください
  2. Reply-Toヘッダーが追加されていることと、ここで使用されている電子メールが有効な電子メールであることを確認してください。
  3. フィールドに名前を追加しToます。お気に入りFirst Last <email@example.com>
  4. 郵送先の会社の住所を追加し、電話番号を含める必要があります。

yahoo の電子メール送信者の IP をホワイト リストに登録するフォームがありました。今、私はそれを見つけません。上記のことを試してみてください。うまくいくはずです。

于 2013-01-12T07:22:38.757 に答える
0

この場合、認証 (ユーザー名パスワード) を使用せず、tls を使用しないでください。これは受け入れられません。

これを使用することをお勧めします:

Gmailアカウントを使用したXAMPP Sendmail

または、次のような smtp 経由でメールを送信するフレームワーク

Zend メール Gmail SMTP

http://framework.zend.com/manual/1.12/en/zend.mail.sending.html

ここにコード例

http://framework.zend.com/downloads/latest#ZF1

require('Zend/Mail.php');

$config = array(
    'ssl' => 'tls',
    'port' => 587,
    'auth' => 'login',
    'username' => 'your_gmail_address@gmail.com',
    'password' => 'password'
);
$smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);

Zend_Mail::setDefaultTransport($smtpConnection);

Zend_Mail::setDefaultFrom('your_gmail_address@gmail.com', 'Your real name');

$mail = new Zend_Mail();
$mail->addTo('any_address@yahoo.com', 'Test');

$mail->setSubject(
        'Demonstration - Sending Mails per SMTP Connection'
    );

$mail->setBodyText('...Your message here...');

$mail->send($smtpConnection);
于 2013-01-12T07:18:32.337 に答える