Laravel发送邮件至自有域名账户报503错误,请求排查原因
使用公司邮箱sales@stopshoprei.com通过Laravel的mail()函数给Gmail账户发送邮件时一切正常,但给自有域名账户(如info@360synergytech.com)发送时出现如下错误:
Expected response code 354 but got code "503", with message
"503-All RCPT commands were rejected with this error:
503-No Such
User Here
503 Valid RCPT command must precede DATA
"
控制器代码
public function mailSenderIntegration(Request $request) { $data = $request->input(); $crm_payment = CrmPayment::where('unique_Id', $data["unique_Id"])->first(); //data for client mail $firstName = $crm_payment->first_name; $services_choosed = $crm_payment->requested_services; $services_choosed = json_decode($services_choosed); $count_services = count($services_choosed); $client_email = $crm_payment->email; $mailData = [ 'name' => $firstName, 'body' => "There's an integration you need which is not listed at futureflippercrm.stopshoprei.com. Our sales person would contact you soon for requirements.", ]; //Mail client Mail::to($client_email) ->send(new mailTempInt($mailData)); }
.env配置
MAIL_DRIVER=smtp MAIL_HOST=mail.stopshoprei.com MAIL_PORT=465 MAIL_USERNAME=sales@stopshoprei.com MAIL_PASSWORD=******* MAIL_ENCRYPTION=ssl MAIL_FROM_ADDRESS=sales@stopshoprei.com MAIL_FROM_NAME="Future Flipper CRM"
已尝试修改端口但问题依旧,请问这是域名相关的问题吗?
先确认收件人邮箱有效性
错误信息里明确标注No Such User Here,说明收件方邮件服务器认为该邮箱不存在。先手动用其他正常邮箱(比如Gmail)给info@360synergytech.com发送测试邮件,验证该邮箱是否真实存在且能正常接收邮件。检查收件域名的邮件服务器配置
部分自有域名的MX记录配置可能存在问题,导致你的SMTP服务器无法正确解析收件人邮箱。可以通过命令行工具查询目标域名的MX记录,比如执行:nslookup -type=MX 360synergytech.com查看返回结果是否包含有效的邮件服务器地址,若MX记录缺失或配置错误,需要联系域名所有者修正。
核实发件域名的反垃圾邮件配置
虽然给Gmail发件正常,但自有域名的反垃圾策略可能更严格。检查你的发件域名stopshoprei.com是否正确配置了SPF、DKIM、DMARC记录,这些记录能提升邮件的可信度,避免被收件方服务器直接拒绝。检查代码中收件人邮箱的格式
确认$client_email变量获取到的邮箱地址格式正确,没有多余空格、拼写错误或特殊字符。可以在代码中添加日志输出,记录实际发送的邮箱地址:Log::info('待发送邮件的收件人邮箱:' . $client_email);运行后查看日志,验证邮箱地址的准确性。
尝试更换SMTP端口与加密方式
虽然你已经试过改端口,但可以尝试切换到587端口+TLS加密,部分邮件服务器对该组合的兼容性更好。修改.env配置:MAIL_PORT=587 MAIL_ENCRYPTION=tls修改完成后,执行命令清除Laravel配置缓存:
php artisan config:clear再重新测试发件。
内容的提问来源于stack exchange,提问作者ahmed

