我没有依赖我的主机发送电子邮件,而是考虑使用我的Gmail帐户发送电子邮件.这些电子邮件是我在节目中播放的乐队的个性化电子邮件.有可能吗?
我试图从PHP页面通过GMail的SMTP服务器发送电子邮件,但是我收到此错误:
身份验证失败[SMTP:SMTP服务器不支持身份验证(代码:250,响应:mx.google.com为您服务,[98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]
有人可以帮忙吗?这是我的代码:
<?php
require_once "Mail.php";
$from = "Sandra Sender <sender@example.com>";
$to = "Ramona Recipient <ramona@microsoft.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "smtp.gmail.com";
$port = "587";
$username = "testtest@gmail.com";
$password = "testtest";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username,
'password' => $password));
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) …Run Code Online (Sandbox Code Playgroud) 我读过,通过电子邮件标准的第一部分是区分大小写的,但是我试着将电子邮件发送到name@example.com,Name@example.com和NAME@example.com-它在每种情况下已经到来.
邮件服务器如何处理用户名?是否有可能错过案例并且不会传递该消息?使用与提供电子邮件地址时注册时所写的完全相同的字母大小写真的非常重要吗?
我正在尝试使用python发送电子邮件(Gmail),但我收到以下错误.
Traceback (most recent call last):
File "emailSend.py", line 14, in <module>
server.login(username,password)
File "/usr/lib/python2.5/smtplib.py", line 554, in login
raise SMTPException("SMTP AUTH extension not supported by server.")
smtplib.SMTPException: SMTP AUTH extension not supported by server.
Run Code Online (Sandbox Code Playgroud)
Python脚本如下.
import smtplib
fromaddr = 'user_me@gmail.com'
toaddrs = 'user_you@gmail.com'
msg = 'Why,Oh why!'
username = 'user_me@gmail.com'
password = 'pwd'
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login(username,password)
server.sendmail(fromaddr, toaddrs, msg)
server.quit()
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码发送电子邮件.代码在我的本地计算机中正常运行.但在生产服务器上我收到错误消息
var fromAddress = new MailAddress("mymailid@gmail.com");
var fromPassword = "xxxxxx";
var toAddress = new MailAddress("yourmailid@yourdoamain.com");
string subject = "subject";
string body = "body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
};
using (var message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body
})
smtp.Send(message);
Run Code Online (Sandbox Code Playgroud)
在我的Gmail A/c上,我从生产服务器运行代码后收到了以下电子邮件
嗨,
最近有人使用您的密码尝试登录您的Google帐户mymailid@gmail.com.此人正在使用电子邮件,客户端或移动设备等应用程序.
如果这是一名试图访问您帐户的劫机者,我们会阻止登录尝试.请查看登录尝试的详细信息:
星期五,2014年1月3日13:56:08 UTC时间地址:xxx.xx.xx.xxx(abcd.net.)地点:Philadelphia PA,Philadelphia,PA,USA
如果您无法识别此登录尝试,则其他人可能会尝试访问您的帐户.您应该立即登录您的帐户并重置密码.
重设密码
如果是您并且您在访问帐户时遇到问题,请完成http://support.google.com/mail?p=client_login中列出的问题排查步骤
您诚挚的,Google帐户团队
出于某种原因," 通过Gmail发送.NET中的电子邮件 "既没有被接受的答案也没有其他任何一个对我有用.他们为什么不工作?
更新:我在另一个问题中尝试了所有答案(接受和否则),但没有一个能够奏效.
我想知道它是否适用于其他任何人,否则谷歌可能已经改变了一些事情(之前发生过).
当我尝试使用的代码片段时SmtpDeliveryMethod.Network,我会在Send(消息)上快速收到SmtpException.信息是
SMTP服务器需要安全连接或客户端未经过身份验证.
服务器响应是:
5.5.1需要验证.了解更多"< - 认真,它在那里结束.
更新:
这是我很久以前问过的一个问题,接受的答案是我在不同的项目中使用了很多次的代码.
我已经在这篇文章和其他EmailSender项目中采用了一些想法,在Codeplex上创建了一个EmailSender项目.它专为可测试性而设计,支持我最喜欢的SMTP服务,如GoDaddy和Gmail.
这些端口465和587都用于发送邮件(提交邮件),但它们之间的真正区别是什么?
我正在内部从Jenkins发送邮件到匿名SMTP中继.然后,该中继通过端口587上的TLS安全地将邮件发送到在线交换.传输工作正常,问题是Microsoft要求发件人地址匹配与帐户电子邮件地址相同的身份验证凭据登录名.例如,比如说这是foo@mycompany.com.如何让jenkins始终从foo@mycompany.com发送邮件?
顺便说一下,当我说传输工作完全正常时,我的意思是我可以将格式化的电子邮件文件放入SMTP中继服务器上的"分拣"目录中,如果发件人地址为foo @ mycompany,则将其正确发送给任何收件人.COM.
我收到这个错误:
根据验证程序,远程证书无效.
每当我尝试使用我的C#代码中的Gmail SMTP服务器发送电子邮件时.有人能指出我找到解决这个问题的正确方向吗?
以下是堆栈跟踪...
at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
at …Run Code Online (Sandbox Code Playgroud) 经过多次搜索后,我无法找到如何使用smtplib.sendmail发送给多个收件人.问题是每次发送邮件时邮件标题似乎包含多个地址,但事实上只有第一个收件人才会收到电子邮件.
问题似乎是email.Message模块期望与smtplib.sendmail()函数不同的东西.
简而言之,要发送给多个收件人,您应将标头设置为逗号分隔的电子邮件地址字符串.但该sendmail()参数to_addrs应该是电子邮件地址列表.
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
import smtplib
msg = MIMEMultipart()
msg["Subject"] = "Example"
msg["From"] = "me@example.com"
msg["To"] = "malcom@example.com,reynolds@example.com,firefly@example.com"
msg["Cc"] = "serenity@example.com,inara@example.com"
body = MIMEText("example email body")
msg.attach(body)
smtp = smtplib.SMTP("mailhost.example.com", 25)
smtp.sendmail(msg["From"], msg["To"].split(",") + msg["Cc"].split(","), msg.as_string())
smtp.quit()
Run Code Online (Sandbox Code Playgroud)