Как изменить адрес с адреса при использовании SMTP-сервера Gmail - PullRequest
22 голосов
/ 26 августа 2009

Я хочу отправить письмо от A до B , с HEADER и CONTENT через gmail.

Как это сделать с помощью PHP?

Я указал ОТ (from@example.com), но когда я получаю электронное письмо, оно все равно поступает из моей учетной записи gmail (abc@gmail.com).

screenshot of from address
(источник: maishudi.com )

$mail->From = "from@example.com";
$mail->FromName = "Mailer";
$mail->AddAddress("abc12@163.com", "Josh Adams");// name is optional
$mail->AddReplyTo("abc12@qq.com", "Information");

Как мне поменять деталь ОТ ?

Ответы [ 6 ]

46 голосов
/ 26 августа 2009

Краткий ответ - вы не можете.

Google переписывает заголовки From и Reply-To в сообщениях, отправляемых вами через службу SMTP, на значения, относящиеся к вашей учетной записи Gmail.

Функция SMTP в gmail не предназначена для использования в качестве открытой или ретрансляционной службы. Если бы он позволял какие-либо значения для заголовка From, это значительно ослабило бы репутацию Google со спам-сервисами, поскольку не было бы никакого способа проверить учетные данные отправителя.

Вам нужно рассмотреть альтернативы. Как вы планируете разместить свой скрипт / приложение / веб-сайт после его завершения: практически все хостинговые решения (shared / vps / выделенный сервер) будут предварительно сконфигурированы с решением для передачи электронной почты: будь то sendmail или postfix в * nix или IIS в Windows.

Если вы собираетесь использовать gmail, вы можете:

  • Настройка выделенной учетной записи myapp@gmail.com
  • Если вы являетесь владельцем домена, с которого якобы отправляете сообщения, воспользуйтесь бесплатным gmail для доменов и настройте учетную запись myapp@mydomain.com.

====

Редактировать июнь 2015

Было высказано предположение, что GMail разрешает отправку по разным адресам . Насколько я могу судить, это для отправки через приложение weail GMail и использует ваш существующий внешний SMTP-сервер, который не имеет отношения к исходному вопросу.

====

Редактировать ноябрь 2013

Видя, что это все еще набирает голоса. Быстрое обновление.

Google отозвали свой бесплатный GMail для доменов. Есть много других бесплатных услуг вокруг. Следует отметить Mandrill - почтовый сервис один-к-одному, предназначенный для транзакционных электронных писем (например, заказов электронной коммерции и т. Д.). Он управляется MailChimp, который в значительной степени знает все, что нужно знать об отправке электронной почты в объеме. Они также дают вам 12 КБ / месяц бесплатно, что довольно неплохо.

9 голосов
/ 29 марта 2013

Этот вопрос и правильный ответ могут быть актуальны:

При использовании Gmail для SMTP вы можете установить другой адрес "от"?

Gmail требует, чтобы вы проверяли адреса от до отправки почты в качестве этого адреса электронной почты. Поэтому вам нужно добавить нового отправителя в личный аккаунт Gmail и подтвердить его.

Это позволит вам пройти аутентификацию на youremail@gmail.com и отправить электронное письмо с адресом от@example.com

.
1 голос
/ 13 декабря 2018

Вам нужно перейти в настройки GMAIL и добавить новый псевдоним.

Вам будет запрошена информация SMTP, которая в принципе бесполезна, так как вы используете SMTP для отправки электронной почты, НО выгода в том, что если ваш псевдоним находится в домене Google Suite , он будет добавлен просто с помощью простого подтверждения по электронной почте!

Как только у вас появится псевдоним, вы можете изменить заголовок «От» в SMTPэлектронная почта.


ПРИМЕЧАНИЕ: Вы не можете изменить адрес «От» на what@dude.com, так работает Gmail и является причиной его доверия.

1 голос
/ 26 августа 2009

В отличие от всех остальных, я сделаю решающий шаг и сделаю предположение, что под письмами вы подразумеваете электронные письма ...

Но я не уверен, к чему вы клоните, когда упоминаете, что оно должно включать «Заголовки и контент». Вы хотите пересылать электронные письма? Хотите, чтобы электронные письма от A выглядели так, как если бы они приходили с учетной записи B в заголовках? Вы создаете какой-то клиент Gmail?

Самый простой способ отправить электронное письмо с помощью PHP - это функция mail . Этот пример взят прямо из их документации:

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

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

Если вы хотите, чтобы заголовки появлялись из gmail A , а не просто изменили из / reply на часть, вам придется использовать gmail в качестве SMTP-сервера. Я не знаю, можете ли вы установить это на уровне сценария.

0 голосов
/ 22 июля 2018

Ответ выше не совсем правильный.

Вы определенно можете указать любого отправителя , если принадлежит вам другой адрес электронной почты.

Как поясняет страница справки :

  1. На вашем компьютере откройте Gmail .
  2. В правом верхнем углу нажмите Настройки .
  3. Откройте вкладку Учетные записи и импортируйте или Счета .
  4. В разделе " Отправить почту как " нажмите Добавить другой адрес электронной почты.
  5. Введите ваше имя и адрес, с которого вы хотите отправить.
  6. Нажмите Следующий шаг , а затем Отправьте подтверждение .
  7. Для школьных или рабочих учетных записей введите SMTP-сервер (например, smtp.gmail.com или smtp.yourschool.edu) и имя пользователя и пароль для этой учетной записи.
  8. Нажмите Добавить аккаунт .

Как только это письмо будет успешно добавлено, Вы можете отправить электронное письмо от имени нового адреса электронной почты в Gmail.

Google не будет перезаписывать вашу электронную почту таким образом, пока вы отправляете электронную почту через Google SMTP.

0 голосов
/ 26 августа 2009

Если вы хотите использовать gmail по той причине, что вы не хотите устанавливать MTA (причина, которую вы указали в комментарии к этому ответу), у вас есть 2 варианта:

  1. Если веб-сервер у вас дом / рабочее место; использовать свой провайдер smtp-сервер
  2. Если веб-сервер находится на выделенном хостинг-центр, спросите их, что SMTP-сервер для использования.
...