Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用gmail smtp服务器时如何更改发件人地址_Php_Email_Smtp_Gmail - Fatal编程技术网

Php 使用gmail smtp服务器时如何更改发件人地址

Php 使用gmail smtp服务器时如何更改发件人地址,php,email,smtp,gmail,Php,Email,Smtp,Gmail,我想通过gmail从A发一封邮件到B,邮件的标题和内容 如何通过PHP实现这一点 我已经指定了FROMfrom@example.com,但当我收到电子邮件时,它仍然来自我的gmailaccountabc@gmail.com. $mail->From = "from@example.com"; $mail->FromName = "Mailer"; $mail->AddAddress("abc12@163.com", &

我想通过gmail从A发一封邮件到B,邮件的标题和内容

如何通过PHP实现这一点

我已经指定了FROMfrom@example.com,但当我收到电子邮件时,它仍然来自我的gmailaccountabc@gmail.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");

我该如何更改“从”部分?

与其他人不同,我会大胆尝试,假设你所说的字母是指电子邮件

但当你提到它应该包括标题和内容时,我不确定你的意思是什么。你想转发电子邮件吗?你想让A发来的邮件在邮件头中看起来像是来自B的gmail帐户吗?你在构建gmail客户端吗

使用PHP发送电子邮件的最简单方法是使用函数。此示例直接来自他们的文档:

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

如果您希望邮件头显示在A的gmail中,而不是简单地更改from/reply-to部分,那么您必须使用gmail作为SMTP服务器。我不知道您是否可以在脚本级别设置它。

简短的回答-您不能

谷歌将您通过其SMTP服务发送的邮件中的“发件人”和“回复”标题改写为与您的gmail帐户相关的值

gmail的SMTP功能并不打算成为开放或中继服务。如果允许From头有任何值,这将大大削弱谷歌在垃圾邮件服务中的地位,因为无法验证发件人的凭据

你需要考虑其他的选择。在脚本/应用程序/网站完成后,您打算如何托管它:几乎每个共享的托管解决方案/vps/专用服务器都将预先配置电子邮件传输解决方案:无论是*nix上的sendmail或postfix,还是Windows上的IIS

如果您打算使用gmail,那么您可以:

设置一个专用的myapp@gmail.com账户 如果您拥有假定从中发送的域,请使用,并设置myapp@mydomain.com账户 ====

2015年6月编辑 有人建议GMail确实允许。据我所知,这是通过GMail wep应用程序发送的,并使用您现有的外部SMTP服务器,这与原始问题无关

====

2013年11月编辑 因为这仍然是一个涓涓细流的选票。快速更新


谷歌已经撤回了他们的免费域名GMail。附近还有很多其他免费服务。值得注意的一点是-一对一电子邮件服务,用于交易性电子邮件,如电子商务订单等。。它是由MailChimp运行的,他对大量发送电子邮件几乎了如指掌。他们还为您提供每月12千美元的免费服务,这相当不错。

如果您想使用gmail的原因是因为您不想建立MTA,您在回复评论中陈述了这一原因,那么您有两种选择:

如果web服务器位于您的 家庭/工作场所;使用您的ISP smtp服务器 如果web服务器位于专用位置 托管中心,问他们什么 要使用的smtp服务器。
此问题和正确答案可能与以下内容相关:

Gmail要求您在将邮件作为电子邮件地址发送之前验证发件人地址。因此,你需要在你的个人gmail帐户中添加一个新的发件人,并对其进行验证


这样做将允许您使用进行身份验证youremail@gmail.com并从发送电子邮件from@example.com上面的答案不太正确

您完全可以指定任何发件人,只要您拥有其他电子邮件地址

正如秘书长解释的那样:

在你的电脑上,打开Gmail。 在右上角,单击“设置”。 单击“帐户和导入”或“帐户”选项卡。 在“将邮件发送为”部分中,单击“添加其他电子邮件地址”。 输入您的姓名和发送地址。 单击下一步,然后发送验证。 对于学校或工作帐户,请输入SMTP服务器,例如SMTP.gmail.com或SMTP.yourschool.edu以及该帐户的用户名和密码。 单击添加帐户。 成功添加该电子邮件后, 您可以在gmail中代表新的电子邮件地址发送电子邮件


当您通过谷歌SMTP发送电子邮件时,谷歌不会以这种方式重写您的电子邮件。

您需要转到GMAIL设置并添加新别名

您将被询问SMTP信息,这基本上是无用的,因为您正在使用SMTP发送电子邮件,但问题是,如果您的别名位于Google Suite域中,则只需简单的电子邮件确认即可添加它

一旦你有了别名,你就可以在你的SMTP邮件中更改邮件头


注意:您不能将地址从更改为whatever@dude.com,这正是Gmail的工作原理,也是它值得信赖的原因。

似乎来自:webmaster@example.com现在不工作。你更换了吗webmaster@example.com你想发送的电子邮件地址?不,我想当我收到电子邮件时,应该是从webmaster@example.com,但事实上它表明它是从海岸来的。cloud@gmail.comwhic
h是我的gmail帐户。我刚刚用PHP给你发了一封电子邮件,我是从那里发的,作为你的电子邮件,它有效吗?好的,我给了你投票权:但是你不理解我。我不想从我的托管环境发送邮件…其他第三方邮件传输代理(如gmail)都可以接受。既然gmail有这样的限制,你能推荐另一个吗?我参加聚会真的很晚,但我正在尝试类似的方式,你能帮我回答我的问题吗?是的,你可以!看看@casaram-answer。你可以,如果你愿意的话。不,公共和免费的MTA更好:在什么意义上更好?你为什么不想使用ISP的SMTP服务器?我不想付额外的钱:你使用什么ISP?我从来没有听说过一家向您收取使用其SMTP服务器的费用的公司?问题在于漫游的自由性-当客户端漫游时,ISP通常不允许从其他网络进行SMTP访问。此外,许多ISP不允许设置自定义发件人:地址。此外,许多廉价的ISP根本不提供SMTP服务,或者为此收取额外费用from@example.com电子邮件,您可以设置您的gmail帐户以添加新地址,并且您可以使用此地址发送电子邮件。但它会向该地址发送激活码,如果您没有访问该帐户的权限,则无法设置。这只是要求我为我的其他电子邮件地址插入新的SMTP详细信息: