web-dev-qa-db-ja.com

Gmail SMTPサーバーを使用している場合に送信元アドレスを変更する方法

[〜#〜] a [〜#〜]から[〜#〜にメールを送信したい] b [〜#〜]、with[〜#〜] header [〜#〜]および[〜#〜] content [〜#〜]Gmail経由。

PHPでそれを行う方法

[〜#〜] from [〜#〜][email protected])を指定しましたが、メールを受信すると、まだ私のGmailアカウント([email protected])からです。

screenshot of from address
(ソース: maishudi.com

$mail->From = "[email protected]";
$mail->FromName = "Mailer";
$mail->AddAddress("[email protected]", "Josh Adams");// name is optional
$mail->AddReplyTo("[email protected]", "Information");

[〜#〜] from [〜#〜]パーツを変更するにはどうすればよいですか?

24
omg

短い答え-あなたはできません。

Googleは、SMTPサービスを介して送信するメッセージのFromヘッダーとReply-Toヘッダーを、Gmailアカウントに関連する値に書き換えます。

GmailのSMTP機能は、オープンサービスやリレーサービスを意図したものではありません。 Fromヘッダーに任意の値を許可すると、送信者の資格情報を検証する方法がないため、スパムサービスに対するGoogleの立場が著しく損なわれます。

代替案を検討する必要があります。終了時にスクリプト/アプリケーション/ウェブサイトをどのようにホストする予定ですか?事実上すべてのホスティングソリューション(共有/ vps /専用サーバー)は、電子メール転送ソリューションで事前構成されます:sendmailまたはpostfix on * nix、または= IIS Windowsの場合。

Gmailの使用を考えている場合は、次のことができます。

====

2015年6月を編集

GMailは 異なるアドレス経由で送信 を許可することが示唆されました。私の知る限り、これはGMail wepアプリ経由で送信するためのものであり、元の質問には関係のない既存の外部SMTPサーバーを利用します。

====

2013年11月を編集

これはまだ投票の細流を得ているように見える。クイックアップデート。

Googleはドメイン向けの無料のGmailを撤回しました。周辺には他にも無料のサービスがたくさんあります。注の1つは Mandrill -トランザクションメール(eコマースの注文など)を対象とした1対1のメールサービスです。メールの大量送信について知っておくべきことはすべて知っているMailChimpが実行しています。また、1か月あたり12,000円無料です。

48
Ian

この質問と正解が関連する場合があります。

Gmail for SMTPを使用している場合、別の「送信元」アドレスを設定できますか?

Gmailでは、そのメールアドレスとしてメールを送信する前に、差出人アドレスを検証する必要があります。そのため、個人のGmailアカウントに新しい送信者を追加して検証する必要があります。

これにより、youremail @ gmail.comで認証し、from @ example.comからメールを送信できるようになります

8
casaram

GMAIL設定に移動して、新しいエイリアスを追加する必要があります。

SMTPを使用して電子メールを送信しているため、基本的に役に立たないSMTP情報を尋ねられます[〜#〜] but [〜#〜]キャッチはエイリアスの場合Google Suiteドメインにある簡単なメール確認で追加されます!

そこでエイリアスを取得したら、SMTPメールの「From」ヘッダーを変更できます。


注:「差出人」アドレスを[email protected]に変更することはできません。これがGmailの仕組みであり、信頼されている理由です。

1
Martin Zvarík

他の誰とも違って、私は思い切って、文字であなたが電子メールを意味すると仮定します...

しかし、「ヘッダーとコンテンツ」が含まれているべきだとあなたが言ったとき、私はあなたが何を得ているのかわかりません。メールを転送しますか? [〜#〜] a [〜#〜]からのメールを[〜#〜] b [からのように表示しますか? 〜#〜]のヘッダーにあるGmailアカウント?何らかのGmailクライアントを構築していますか?

PHP=を使用して電子メールを送信する最も簡単な方法は、 mail 関数を使用することです。この例は、ドキュメントから直接取得しています。

$to      = '[email protected]';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
    'Reply-To: [email protected]' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

ヘッダーを[〜#〜] a [〜#〜]のGmailから表示し、単にfrom/replyをpartに変更しないようにする場合は、 SMTPサーバーとしてGmailを使用します。スクリプトレベルで設定できるかどうかはわかりません。

1
Anthony

上記の答えは正確ではありません。

あなたは間違いなく送信者を指定することができます限りあなたが他のメールアドレスを所有している限り。

ヘルプページ の説明:

  1. パソコンでGmailを開きます。
  2. 右上の設定をクリックします。
  3. アカウントとインポートまたはアカウントタブをクリックします。
  4. [名前セクションで、追加別のメールアドレスをクリックします。
  5. 名前と送信元のアドレスを入力します。
  6. 次のステップをクリックし、次に確認を送信をクリックします。
  7. 学校または職場のアカウントの場合、SMTPサーバー(たとえば、smtp.gmail.comまたはsmtp.yourschool.edu)とそのアカウントのユーザー名とパスワードを入力します。
  8. アカウントを追加をクリックします。

そのメールが正常に追加されたら、Gmailの新しいメールアドレスに代わってメールを送信できます。

Google しない Google SMTP経由でメールを送信している間、この方法でメールを書き換えます。

0
Yulin

Gmailを使用する理由がMTAを設定したくないためである場合( this 回答へのコメントで述べた理由)、2つのオプションがあります。

  1. Webサーバーが自宅/職場にある場合; ISPのsmtp-serverを使用する
  2. Webサーバーが専用のホスティングセンターにある場合は、使用するsmtp-serverを尋ねます。
0
Espo