web-dev-qa-db-fra.com

Comment changer d'adresse lors de l'utilisation de Gmail SMTP Server

Je veux envoyer un email de [~ # ~] A [~ # ~] to [~ # ~ # ~] B [~ # ~], avec [~ # ~] en-tête [~ # ~ ~] et [~ # ~] contenu [~ # ~ # ~] via Gmail.

Comment faire cela par PHP?

J'ai spécifié le [~ # ~] de [~ # ~] ([email protected]), mais quand je reçois l'email, il est toujours à partir de mon compte Gmail (ABC @ gmail .com).

screenshot of from address
(Source: maishudi.com )

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

Comment puis-je changer le [~ # ~ # ~] de [~ # ~ ~] pièce?

24
omg

La réponse courte - vous ne pouvez pas.

Google réécrit la réponse et les en-têtes de réponse dans les en-têtes dans les messages que vous envoyez via son service SMTP aux valeurs qui concernent votre compte Gmail.

La fonctionnalité SMTP de Gmail n'est pas destinée à être un service ouvert ou relais. Si cela permettait des valeurs pour l'en-tête de l'en-tête, elle diluerait considérablement la position de Google avec des services de spam, car il n'y aurait aucun moyen de vérifier les informations d'identification de l'expéditeur.

Vous devez envisager des alternatives. Comment envisagez-vous d'héberger votre script/votre application/site Web quand il est terminé: pratiquement toutes les solutions d'hébergement (Shared/VPS/Server dédié) se présenteront préconfigurés avec une solution de transfert de courrier électronique: Soyez-le SendMail ou Postfix sur * Nix, ou = IIS sous Windows.

Si vous avez l'intention d'utiliser Gmail, vous pouvez:

=====

Modifier juin 2015

Il a été suggéré que Gmail autorise envoi via différentes adresses . Pour autant que je puisse le dire, ceci est destiné à être envoyé via l'application Gmail WEP et utilise votre serveur SMTP externe existant, qui n'est pas pertinent pour la question initiale.

=====

Modifier nov. 2013

Voir car cela obtenait toujours un filet de votes. Une mise à jour rapide.

Google a retiré leur gmail gratuit pour les domaines. Il y a beaucoup d'autres services gratuits autour. Une note est Mandrill - Un service de messagerie d'un à un destiné aux courriels transactionnels (par exemple, commandes de commerce électronique, etc.). Il a couru par Mailchimp, qui savait à peu près tout ce qu'il y a à savoir sur l'envoi d'un courrier électronique au volume. Ils vous donnent également 12K/mois gratuits, ce qui est plutôt gentil.

48
Ian

Cette question et cette réponse correcte peuvent être pertinentes:

Lorsque vous utilisez Gmail pour SMTP, pouvez-vous définir une adresse "de" différente?

Gmail vous oblige à valider à partir d'adresses avant d'envoyer du courrier en tant qu'adresse électronique. Vous devez donc ajouter un nouvel expéditeur dans votre compte Gmail personnel et le valider.

Cela vous permettra d'authentifier avec [email protected] et d'envoyer un courrier électronique à partir [email protected]

8
casaram

Vous devez aller à Gmail Paramètres et ajouter de nouveaux alias.

On vous demandera des informations SMTP, qui est fondamentalement inutile, car vous utilisez SMTP pour envoyer un courrier électronique, MAIS La capture est celle-ci si votre alias est sur Google Suite Domaine Il sera ajouté juste avec une simple confirmation de courrier électronique!

Une fois que vous avez l'alias, vous pouvez changer "de" en-tête de votre courrier électronique SMTP.


Remarque : Vous ne pouvez pas changer l'adresse "de" à [email protected], c'est à quel point Gmail fonctionne et est la raison pour laquelle il a confiance.

1
Martin Zvarík

Contrairement à tous les autres, je vais faire le plongeon et faire l'hypothèse que par des lettres que vous entendez des emails ...

Mais je ne suis pas sûr de ce que vous obtenez lorsque vous mentionnez qu'il devrait inclure des "en-têtes et contenus". Voulez-vous envoyer des emails? Voulez-vous que les courriels de [~ # ~ # ~] a [~ # ~] Pour apparaître comme s'il venait de [~ # ~ # ~] B [~ # ~] compte gmail dans les en-têtes? Vous construisez-vous une sorte de client Gmail?

Le moyen le plus simple d'envoyer un email avec PHP est avec la fonction mail . Cet exemple est directement de leur documentation:

$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);

Si vous voulez que les en-têtes apparaissent de [~ # ~ ~] a [~ # ~] Gmail et ne pas simplement changer de/réponse à la pièce, vous devez utiliser gmail comme serveur SMTP. Je ne sais pas si vous pouvez définir cela au niveau du script.

1
Anthony

La réponse ci-dessus n'est pas tout à fait correcte.

Vous êtes certainement capable de spécifier des expéditeursTant queVous possédez l'autre adresse e-mail.

Comme la aide page explique:

  1. Sur votre ordinateur, ouvrezgmail.
  2. En haut à droite, cliquez surParamètres.
  3. Cliquez surcomptes et importoucomptesonglet.
  4. Dans la section "Envoyer le mail comme", cliquez suraddune autre adresse e-mail.
  5. Entrez votre nom et l'adresse que vous souhaitez envoyer.
  6. CliquezNEXT STEP, puisEnvoyer la vérification.
  7. Pour les comptes d'école ou de travail, entrez le serveur SMTP (par exemple, smtp.gmail.com ou SMTP.YOURSCHOOL.EDU) et le nom d'utilisateur et le mot de passe sur ce compte.
  8. CliquezAjouter un compte.

Une fois que cet email est ajouté avec succès, vous pouvez envoyer un courrier électronique au nom de la nouvelle adresse e-mail dans Gmail.

Googlene sera pasréécrire votre email de cette façon pendant que vous envoyez un courrier électronique via Google SMTP.

0
Yulin

Si la raison pour laquelle vous souhaitez utiliser Gmail est parce que vous ne voulez pas mettre en place une MTA (la raison pour laquelle vous avez indiqué dans un commentaire à ceci Réponse), vous avez 2 options:

  1. Si le serveur Web est à votre domicile/lieu de travail; Utilisez votre serveur SMTP de votre fournisseur de services Internet
  2. Si le serveur Web est dans un centre d'hébergement dédié, demandez-leur de l'utilisation de SMTP-Server.
0
Espo