如何向我的 gmail 发送电子邮件而不是托管
Posted
技术标签:
【中文标题】如何向我的 gmail 发送电子邮件而不是托管【英文标题】:How to send an email to my gmail rather than hosting 【发布时间】:2016-05-08 00:11:03 【问题描述】:因此,我从头开始构建自己的网站,并希望创建一个电子邮件功能。现在我想这样做,这样用户就不必使用 Outlook 或其他任何东西来向我发送电子邮件,我想要它以便他们可以通过单击按钮将其发送给我。
现在这基本上是我现在使用的要点
mail($to, $subject, $body);
但是,这仅在我将电子邮件设置为托管服务器电子邮件 (byethost) 时才有效。我尝试将其设置为我的 gmail 帐户,但没有成功。
那么,我该怎么做才能让它向我的 gmail 发送电子邮件
【问题讨论】:
【参考方案1】:如果只是为了好玩,可以考虑使用 Sengrid 的一个选项,它非常简单有效。在 byethost email() 功能不起作用。 收到APIKEY 后,您可以轻松设置电子邮件。这是来自github的php代码:
$sendgrid = new SendGrid('YOUR_SENDGRID_APIKEY');
$email = new SendGrid\Email();
$email
->addTo('foo@bar.com')
->setFrom('me@bar.com')
->setSubject('Subject goes here')
->setText('Hello World!')
->sethtml('<strong>Hello World!</strong>')
;
$sendgrid->send($email);
// Or catch the error
try
$sendgrid->send($email);
catch(\SendGrid\Exception $e)
echo $e->getCode();
foreach($e->getErrors() as $er)
echo $er;
您有一个免费计划,每月有足够多的免费电子邮件。
【讨论】:
【参考方案2】:在将用户(网站访问者)查询发送给网站管理员(gmail 帐户)的一个项目中,我遇到了类似的情况。已通过 Ajax 调用发送表单上收集的详细信息来完成此操作,并将其发布到使用 Postfix 发送邮件的 php 文件中。 (该网站托管在 Ubuntu 服务器上)。
页面中的 JQuery 代码如下所示。
$("#btn_email").click(function ()
//get input field values data to be sent to server
post_data =
'vemail': $('input[name=email]').val(),
'query' : $('input[name=query]').val(),
'subject': 'New Query',
'msg': 'There is new request for query'
;
//Ajax post data to server
$.post('sendmail.php', post_data, function (response)
if (response.type == 'error') //load json data from server and output message
output = '<div class="error">' + response.text + '</div>';
else
output = '<div class="success">' + response.text + '</div>'; );
处理请求的 PHP 代码
$email=$_POST['email'];
$subject = 'New Query';
$headers = 'From:'. $email . "\r\n"; // Sender's Email
$message = $_POST['msg']. "\r\n" .$_POST['query'] . "\r\n\r\nEmail : " . $email ;
$message = wordwrap($message, 70);
// Send Mail By PHP Mail Function
$send_mail = mail("mycontact@gmail.com", $subject, $message, $headers);
if(!$send_mail)
//If mail couldn't be sent output error. Check your PHP email configuration (if it ever happens)
$output = json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration.'));
die($output);
else
$output = json_encode(array('type'=>'message', 'text' => 'Hi, We have added '.$user_email .' to the query. Will answer you soon. Thank you for your interest.'));
die($output);
【讨论】:
【参考方案3】:您说您在托管服务器电子邮件 (byethost) 中收到邮件,但在 gmail 帐户中没有。但是你应该在gmail中收到邮件。你会检查你的垃圾邮件文件夹吗?如果您发送的邮件带有正确的电子邮件标题,它应该会进入您的收件箱。 check here complete-mail-header
为了避免服务器配置问题,您可以使用PHP mailer。您还可以使用此配置 IMAP 和 POP3
【讨论】:
【参考方案4】:您需要 SMTP 才能使用您的 gmail 发送邮件。 PHPMailer 是我经常使用的。
https://github.com/PHPMailer/PHPMailer
【讨论】:
以上是关于如何向我的 gmail 发送电子邮件而不是托管的主要内容,如果未能解决你的问题,请参考以下文章
Gmail 不会从我在 Android 上的应用程序发送附件