我在我的虚拟机上的ubuntu上有一个postfix邮件服务器,现在邮件服务器的域名是abc.com ...因此它接收来自任何"来自地址"的邮件,但是"地址"需要是正确的,即有效用户在邮件服务器中.
现在,在我的项目中,我发送假邮件给用户,其邮件ID也包含其他域名...就像cde.com一样
我的最终目标是在邮件服务器中显示邮件.
当我尝试这样做时,它会直接进入mailserveer日志,即/var/log/mail.log即为错误
有什么办法可以将这些邮件存储在邮件服务器中吗?
我收到这个错误:
提出SMTPRecipientsRefused(发件人)smtplib.SMTPRecipientsRefused:{'example@hotmail.com':( 550,'5.1.1:收件人地址被拒绝:hotmail.com')}
当我试图运行我的python脚本时.
无论我输入什么收件人地址,它仍然会给我同样的错误.我将postfix的配置安装为本地,它正确识别'localhost'但不识别任何发件人地址.这是我的代码:
import smtplib
def sendEmail(addressFrom, addressTo, msg):
server = smtplib.SMTP('localhost')
server.set_debuglevel(1)
server.sendmail(addressFrom, addressTo, msg)
server.quit()
msg = "This is the content of the email"
addressFrom = ""
addressTo = "example@hotmail.com"
sendEmail(addressFrom, addressTo, msg)
Run Code Online (Sandbox Code Playgroud)
这是postfix的main.cf文件.现在看一下,mydestination只设置为本地地址,这可能是问题吗?
# See /usr/share/postfix/main.cf.dist for a commented, more complete version
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = …Run Code Online (Sandbox Code Playgroud) 默认情况下,"Content-Transfer-Encoding"设置设置为"7bit".邮件服务器Postfix通过一堆1000个caracteres来分解电子邮件标题,这意味着如果你有一个很长的电子邮件(例如使用HTML),你最终会在文本或链接中间留出空格.(有关详细信息,请参阅此主题:http://tech.groups.yahoo.com/group/postfix-users/message/273296)
按照Rails ActionMailer文档(http://api.rubyonrails.org/classes/ActionMailer/Base.html),将以下代码添加到我的应用程序文件中应该可以实现,但它不起作用:
ActionMailer::Base.default 'Content-Transfer-Encoding' => 'quoted-printable'
我仍然以默认值结束:
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_50166adf1e043_1b9810829142282d";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Run Code Online (Sandbox Code Playgroud)
我的邮箱看起来像这样:
def new_registered_user(user_id)
@user = User.find(user_id)
set_locale @user.locale
mail(
:subject => i18n_subject,
:to => @user.email_with_name
) do |format|
format.text { render :layout => 'text_email' }
format.html
end
end
Run Code Online (Sandbox Code Playgroud)
我还应该改变什么?
请给我一个最好的解决方案来存储所有邮件(发送,接收,转发)在mysql与postfix?这是正确的方法吗?
我家里有一台带静态IP的服务器,我用域名提供自己的网页,一切正常.
在我的网页中,您可以通过电子邮件和密码注册.当您注册名为nodemailer的节点模块时,从谷歌帐户发送电子邮件,问题是谷歌帐户有发送电子邮件的限制.
所以我需要将nodemailer模块连接到我自己家中的服务器.
我在谷歌搜索,但没有类似的答案.
如何在nodejs中使用postfix?
或者如何将haraka模块与nodemailer一起使用
https://github.com/baudehlo/Haraka
所以我重复我的问题,我需要从我的服务器发送一封电子邮件给任何在我的网站上注册的电子邮件用户.
例如...
用户jose@gmail.com在我的网站上注册
nodemailer配置是......
exports.newRegistration=function(parametros,callback)
{
var mailOptions =
{
from: "<myemailingoogle@gmail.com>",//my email
to: parametros.useremail,//user email
subject: 'Welcome '+parametros.useremail+'.',
html: '<br><b>Hello</b><br>'+ // html
};
var smtpTransport = nodemailer.createTransport("SMTP",
{
service: "Gmail",
secureConnection: true,
auth:
{
user: "myemailingoogle@gmail.com",
pass: "7ftera359c28a",
},
});
smtpTransport.sendMail(mailOptions, function(err, response)
{
if(err)
{
smtpTransport.close();
console.warn(err);
return callback(err,null);
}else{
smtpTransport.close();
return callback(null,response);
}
});
}
Run Code Online (Sandbox Code Playgroud)
电子邮件发送正常,但每天都有限制.
所以我需要使用电子邮件服务器发送我的电子邮件没有限制.... tnx
编辑2
我用apt-get安装mailutils
现在我试试
mail mymailin@gmail.com
Cc: // press enter
Subject: Welcome …Run Code Online (Sandbox Code Playgroud) 我想要postfix在我的ROR项目中发送电子邮件.由于其更安全和更多的功能.
但现在我很失落.我安装postfix了ROR工作.但接下来该怎么办?
(我只需发送电子邮件,暂不收到)
我应该配置postfix,让它能够先在评论行发送电子邮件,然后将其集成到ROR中吗?
如果是这样,我应该如何设置配置文件postfix,以及如何设置rails?
或者我只是需要做每一个设置rails?如果是这样,详细设置应该是什么?
我很困惑.许多教程要么不起作用,要么不适合我的情况.
之前运行的 Dovecot/Postfix/DKIM 设置具有多个域,可正常运行数月。
我尝试添加新域名。回顾我为原始作品所做的事情。一旦我解决了大多数问题,并且所有配置文件、密钥、文本记录等都正常工作,我就可以毫无问题地接收电子邮件,但无法在新电子邮件/域上发送电子邮件。
收到以下错误:
Mar 23 02:48:49 MainFrame-2017 opendkim[4225]: can't load key from /etc/opendkim/keys/zaehlas.com/mail.private: Permission denied
Mar 23 02:48:49 MainFrame-2017 opendkim[4225]: DF0CF5C4CC0: error loading key 'mail._domainkey.zaehlas.com'
Run Code Online (Sandbox Code Playgroud)
安装了以下版本:
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
root@MainFrame-2017:/etc/opendkim/keys/zaehlas.com# dpkg -s opendkim | grep '^Version:'
Version: 2.10.3-3build1
root@MainFrame-2017:/etc/opendkim/keys/zaehlas.com# dpkg -s postfix | grep '^Version:'
Version: 3.1.0-3ubuntu0.3
Run Code Online (Sandbox Code Playgroud)
我检查了权限和配置文件。完美适用于 4 个域,不适用于最后一个域。最后按照我能找到的(许多)指南上的建议重置所有权限,重新启动整个服务器,重新启动多个服务,现在我的域都不会使用 DKIM 发送电子邮件
我的 opendkim.conf (删除了注释和空格)
OversignHeaders From
TrustAnchorFile /usr/share/dns/root.key
AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy …Run Code Online (Sandbox Code Playgroud) 我需要将DKIM添加到Postfix安装中.我发现了两个与Postfix一起使用的实现.OpenDKIM和dkim-milter dkim-milter.前者声称是后者的分支.
从发布和邮件列表活动来看,OpenDKIM似乎是更活跃的项目.
我应该使用以下哪些实现(或其他)?
我想将我的 Postfix 服务器配置为接受所有传入的邮件,这些邮件不必存在于系统上,例如 example@mydomain.com。现在 Postfix 说,本地收件人表中的用户未知。我想要的是在不拒绝的情况下接受这封电子邮件并将其通过管道传输到我的 python 脚本。任何帮助将不胜感激。
我想使用我的主机 postfix 安装从 Alpine-PHP-Fpm 容器发送邮件。
PHP-Fpm 容器 -> Sendmail -> 主机上的 PostFix -> 通过 SMTP 发送
但我得到
sendmail:无法连接到远程主机(127.0.0.1):连接被拒绝
这是 Postfix 配置:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = MYDOMAIN.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.com, localhost
# SMTP authentication settings
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:no-reply@MYDOMAIN.com:SECRETPSW
smtp_sasl_security_options = noanonymous …Run Code Online (Sandbox Code Playgroud) postfix-mta ×10
email ×4
dkim ×2
smtp ×2
actionmailer ×1
docker ×1
fpm ×1
javascript ×1
mail-server ×1
mysql ×1
node.js ×1
nodemailer ×1
php ×1
python ×1
sendmail ×1
server ×1