当我在ubuntu上搜索配置sendmail时,我没有得到任何明确的答案,每个人都认为我知道他们在说什么,
我只想要基本配置来启用电子邮件发送,基本上我将使用它与谷歌应用程序引擎启用从开发服务器发送邮件.
我已经这样做了:
sudo apt-get install sendmail
Run Code Online (Sandbox Code Playgroud)
然后
sudo sendmailconfig
Run Code Online (Sandbox Code Playgroud)
但我不知道最后一个人到底做了什么.
我想从Linux Shell脚本发送电子邮件.执行此操作的标准命令是什么?是否需要设置任何特殊服务器名称?
如果我不是通过SMTP发送邮件,而是通过sendmail发送邮件,是否有一个用于封装此进程的python库?
更好的是,是否有一个好的库可以抽象出整个'sendmail -versus-smtp'的选择?
我将在一堆unix主机上运行这个脚本,其中只有一些正在监听localhost:25; 其中一些是嵌入式系统的一部分,无法设置为接受SMTP.
作为良好实践的一部分,我真的很想让库自己处理标题注入漏洞 - 所以只需要将字符串倾斜popen('/usr/bin/sendmail', 'w')
到比我想要的金属更接近金属.
如果答案是'去写一个库',那就这样吧;-)
这是我的web.config
邮件设置:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="smthg@smthg.net">
<network defaultCredentials="true" host="localhost" port="587" userName="smthg@smthg.net" password="123456"/>
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
这是我如何尝试从中读取值 web.config
var smtp = new System.Net.Mail.SmtpClient();
var credential = new System.Net.Configuration.SmtpSection().Network;
string strHost = smtp.Host;
int port = smtp.Port;
string strUserName = credential.UserName;
string strFromPass = credential.Password;
Run Code Online (Sandbox Code Playgroud)
但凭据始终为空.我如何访问这些值?
我正试图从我的生产服务器上的控制台发送一些邮件,但他们没有出去.我无法理解为什么.我只使用sendmail标准的电子邮件设置.当我调用Mailer.deliver_方法时,我得到了回复:
#<TMail::Mail port=#<TMail::StringPort:id=0x3fe1c205dbcc> bodyport=#<TMail::StringPort:id=0x3fe1c2059e00>>
Run Code Online (Sandbox Code Playgroud)
编辑:添加了一些更多信息:
因此,例如,当新用户注册时,我在我的控制器中有这一行,向他们发送"欢迎"电子邮件:
Mailer.deliver_signup(@user, request.host_with_port, params[:user][:password])
Run Code Online (Sandbox Code Playgroud)
这很好用.我认为我应该可以从控制台做同样的事情,例如
user = User.find(1)
Mailer.deliver_signup(user, "mydomainname.com", "password")
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到了Tmail :: StringPort对象,但邮件似乎没有被发送出去(我正在尝试向自己发送电子邮件来测试这个).
我在ubuntu服务器上以防万一.谢谢 - 最大
我们正在测试新的Office 365测试版,并且我在Exchange Online服务上有一个邮件帐户.现在我正在尝试连接可以从我的测试帐户发送smtp电子邮件的LOB应用程序.
但是,Exchange 365平台需要在端口587上进行TLS加密,并且其"功能" System.Net.Mail
不允许隐式SSL加密.
有没有人设法让C#通过这个平台发送邮件?
我有以下基本代码应该发送邮件 - 任何建议将不胜感激.
SmtpClient server = new SmtpClient("ServerAddress");
server.Port = 587;
server.EnableSsl = true;
server.Credentials = new System.Net.NetworkCredential("username@mydomain.com", "password");
server.Timeout = 5000;
server.UseDefaultCredentials = false;
MailMessage mail = new MailMessage();
mail.From = new MailAddress("recipent@anyaddress");
mail.To.Add("username@mydomain.com");
mail.Subject = "test out message sending";
mail.Body = "this is my message body";
mail.IsBodyHtml = true;
server.Send(mail);
Run Code Online (Sandbox Code Playgroud) 突然开始收到上述错误而没有对脚本进行任何更改.
主机是1和1(我知道......)
该脚本在不同的服务器上仍然可以正常工作,所以我怀疑是否必须有一些服务器配置更改导致这一点,尽管主机恳求无知.
我无法在谷歌找到有关上述错误的信息 - 有没有人有任何想法?如果有帮助,服务器正在运行Apache.
我在cron中运行bash脚本,以便在满足特定条件时向多个收件人发送邮件.
我编码了这样的变量:
subject="Subject"
from="user@domain.com"
recipients="user1@gmail.com user2@gmail.com"
mail="subject:$subject\nfrom:$from\nExample Message"
Run Code Online (Sandbox Code Playgroud)
而实际发送:
echo -e $mail | /usr/sbin/sendmail "$recipients"
Run Code Online (Sandbox Code Playgroud)
问题是只有user2@gmail.com正在接收电子邮件.如何更改此设置以便所有收件人都能收到电子邮件?
注意:解决方案必须与sendmail,我使用jailshell,它似乎是唯一可用的方法
我在控制器中的代码上收到EOFError(文件结束错误).出现错误的块位于行的末尾,表示UserMailer.deliver_message(
我不知道如何解决这个问题,我已经被卡住了大约2个月,并建议使用此站点.请帮忙.
def contact
@title= "Contact Us"
if request.post?
@message= Message.new(params[:contact])
if @message.valid?
UserMailer.deliver_message(
:message => @message
)
flash[:notice] = "Thank you for contacting us"
redirect_to contact_url
end
end
end
Run Code Online (Sandbox Code Playgroud)
这是消息文件:
<%= @message.name %> has sent feedback or a question:
Message: <%= @message.body %>
From: <%= @message.email %>
Run Code Online (Sandbox Code Playgroud)
这是UserMailer
class UserMailer < ActionMailer::Base
def message(mail)
subject 'Feedback/Questions'
recipients 'Email@email'
from 'webmaster'
body mail
end
end
Run Code Online (Sandbox Code Playgroud)
好吧,这是我得到的错误
PedalsController中的EOFError #contact
到达文件的末尾
这是应用程序跟踪
/usr/lib64/ruby/1.8/net/protocol.rb:135:in `sysread'
/usr/lib64/ruby/1.8/net/protocol.rb:135:in `rbuf_fill'
/usr/lib64/ruby/1.8/timeout.rb:62:in `timeout'
/usr/lib64/ruby/1.8/timeout.rb:93:in `timeout'
/usr/lib64/ruby/1.8/net/protocol.rb:134:in …
Run Code Online (Sandbox Code Playgroud)