从 SMTP 服务器使用 PHP 发送电子邮件 [英] Sending email with PHP from an SMTP server

查看:102
本文介绍了从 SMTP 服务器使用 PHP 发送电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

$from = "someonelse@example.com";
$headers = "From:" . $from;
echo mail ("borutflis1@gmail.com" ,"testmailfunction" , "Oj",$headers);

我在用 PHP 发送电子邮件时遇到问题.我收到错误消息:SMTP 服务器响应:需要 530 SMTP 身份验证.

I have trouble sending email in PHP. I get an error: SMTP server response: 530 SMTP authentication is required.

我的印象是您可以在没有 SMTP 验证的情况下发送电子邮件.我知道这封邮件可能会被过滤掉,但现在没关系.

I was under the impression that you can send email without SMTP to verify. I know that this mail will propably get filtered out, but that doesn't matter right now.

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = someonelse@example.com

这是php.ini 文件中的设置.我应该如何设置 SMTP?是否有不需要验证或必须我自己设置服务器的 SMTP 服务器?

This is the setup in the php.ini file. How should I set up SMTP? Are there any SMTP servers that require no verification or must I setup a server myself?

推荐答案

当您通过需要 SMTP Auth 的服务器发送电子邮件时,您确实需要指定它,并设置主机、用户名和密码(以及如果不是默认端口,则可能是端口 - 25).

When you are sending an e-mail through a server that requires SMTP Auth, you really need to specify it, and set the host, username and password (and maybe the port if it is not the default one - 25).

例如,我通常使用 PHPMailer,其设置与此类似:

For example, I usually use PHPMailer with similar settings to this ones:

$mail = new PHPMailer();

// Settings
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';

$mail->Host       = "mail.example.com";    // SMTP server example
$mail->SMTPDebug  = 0;                     // enables SMTP debug information (for testing)
$mail->SMTPAuth   = true;                  // enable SMTP authentication
$mail->Port       = 25;                    // set the SMTP port for the GMAIL server
$mail->Username   = "username";            // SMTP account username example
$mail->Password   = "password";            // SMTP account password example

// Content
$mail->isHTML(true);                       // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->send();

您可以在此处找到有关 PHPMailer 的更多信息:https://github.com/PHPMailer/PHPMailer

You can find more about PHPMailer here: https://github.com/PHPMailer/PHPMailer

这篇关于从 SMTP 服务器使用 PHP 发送电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆